The Swift Programming Language (Swift 5.1) 에서 Strings and Characters 에서 중요하다고 생각되는 부분을 정리합니다.
public struct String { } public struct Character { }
– String, Character는 구조체이다
– Character의 연속이 String이다
– String, Character는 구조체이기 때문에 값 타입이다
let char: Character = "\u{D55C}" //Character에 유니코드 스칼라를 넣는다 let a: Character = "\u{1112}" let b: Character = "\u{1161}" let c: Character = "\u{11AB}" (String(a)+String(b)+String(c)) == "\u{1112}\u{1161}\u{11AB}" // true // Character는 + 연산자 사용할 수 없음, Character의 연속 = String
String.Index는 String에서 각각의 Character 위치를 나타낸다. String.Index도 구조체이다. 스트링 인덱싱은 각각의 Character마다 메모리에 저장되는 크기가 다르기 때문에 정수형으로 인덱싱 될 수 없고 String.Index라는 구조체로 표현한다.
let greeting = "Guten Tag!" greeting[greeting.startIndex] // G, String subscripts greeting[greeting.index(before: greeting.endIndex)] // !’
Substring & Index let greeting = "Hello, world!" let index = greeting.index(of: ",") ?? greeting.endIndex let beginning = greeting[..<index]
let str = "한글😍🍭ab12" str.count //8, 스트링 길이 보다 각각의 Character 갯수라고 말하는게 맞다
let dogString = "Dog‼🐶"