ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift - String
    기술 관련/Apple Swift 2014. 8. 8. 18:03
    Objective-C NSString과 호환
    • Swift String은 Objective-C NSString과 seamless 하게 동작하도록 연결되어 있음
    • 따라서, NSString에서 제공하던 API가 Swift String에서도 동일하게 제공됨

    문자열 초기화
    • literal 로 초기화
      • var emptyString = ""
    • Type initializer로 초기화
      • var emptyString = String()


    문자열 편집
    • 변수로 선언된 경우 따옴표로 묶여있는 문자열 또는 다른 문자열 변수/상수를 할당

    Value 타입의 문자열
    • 기본적으로 String 타입은 Value 타입으로 함수나 메소드에 전달되나 새로운 변수, 상수에 할당 될 때 그 값이 복사가 된다
    • 실제 Swift 내부적으로는 실행 시 필요한 경우에만 복사를 한다고 한다 (성능 관련)

    Character 타입과 관계
    • String은 Character의 조합으로 구성되어 있다
    • String과 Character를 붙일 경우 이를 String에 다시 할당 할 수 있다

    let ch:Character = "A"

    let str:String = "Hello"

    let ch_str = str + ch     // "HelloA"


    String Interpolation
    • 문자열 중간에 Escape를 두어 상수나 변수를 문자열과 조합 할 수 있는 기능

    let ch:Character = "A"

    let str:String = "Hello \(A)" // "Hello A"


    Unicode
    • 21 bits Unicode scalar를 사용
    • LATIN SMALL LETTER A는 U+0061 (a)와 같다
    • 특수 문자로 \0 (null) , \\ (backslash) , \t (horizontal tab), \n (line feed), \r (carriage return), \" (double quote), \' (single quote)이 있다
    • 숫자로 표현하는 경우 \u{number} 로 표현하며 1부터 8자리까지의 16진수 값이다

    let dollarSign = "\u{24}" 


    Extended Grapheme Clusters
    • extended grapheme cluster는 하나 또는 연속되 Unicode Scalar의 묶음으로 조합되었을 때 사람이 읽을 수 있는 문자가 되는 구성을 말한다
    • 예를 들어 "한" 이라는 글자는 U+D55C 이며, 이 글자는 ㅎ(U+1112, 초성), ㅏ(U+1161, 중성), ㄴ(U+11AB, 종성)으로 구성되어 있다
    • Swift String에서 다음과 같이 문자열을 구성하면 "\u{1112}\u{1161}\u{11AB}"가 되며 이 문자열이 화면에 표시되는 경우 "한" 으로 표시된다.
    • 같은 글자로 표시되고 하나의 Charactor 로 생성되며 비교시 동일하게 인식하다고 했지만 실제 실행해 보면 그런것으로 보이지는 않는다. 이부분은 좀 더 확인이 필요할 것 같다

    Unicode 표현
    • Swift 문자열는 자기가 가지고 있는 Character를 표현하는 property를 제공한다
    • utf8 : UTF-8 코드
    • utf16 :UTF-16 코드
    • unicodeScalars : 21bit Unicode Scalar로 UTF-32와 동일


    '기술 관련 > Apple Swift' 카테고리의 다른 글

    Swift - Control Flow  (0) 2014.08.11
    Swift - Data Type #Collections  (0) 2014.08.08
    Swift - Operators  (0) 2014.08.08
    Swift - Data Type #Tuple  (0) 2014.08.08
    Swift - Data Type #Optionals  (0) 2014.08.08

    댓글

Designed by Tistory.