-
Swift - String기술 관련/Apple Swift 2014. 8. 8. 18:03Objective-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