서브스크립트란 Swift에서 콜렉션, 리스트, 시퀸스 등 집합의 특정 멤버 엘리먼트에 대괄호를 사용하여 간단하게 접근할 수 있는 문법입니다. 만약 직접 서브스크립트를 구현하려면 다음과 같이 형식을 통해 구현할 수 있으며 오버로딩 또한 지원합니다. subscript(index: Int) -> Int { get { // 적절한 반환 값 } set(newValue) { // 적절한 set 액션 } } String에서 서브스크립트 사용? 결론부터 말하면 Swift에서 String은 가변의 크기를 가지기 때문에 Int기반의 인덱스 참조가 불가능합니다. 저번 포스트에서 알아봤듯이 String은 무엇으로 구성되어 있을까? [Swift] 문자열은 무엇으로 구성되어 있을까? - Extended Grapheme Clust..
SubString이란? Swift에서 문자열(String)에서 일부만 필요에 의해 분리하여 사용하기 위해 prefix(_ : )와 같은 부분 문자열(Substring)을 뽑아내는 메서드를 사용하게 됩니다. 이때 String에서 분리된 문자열은 String 타입이 아닌 Substring 타입으로 따로 정의가 되어 있는데 우리가 사용할 때 굳이 구분하지 않는 이유는 String과 Substring 모두 StringProtocol을 준수하고 있기 때문입니다. (POP의 장점?!) 그렇다면 String에서 분리한 Substring은 메모리에서 어떻게 관리될까? 다음과 예제를 같이 살펴봅시다 let greeting = "Hello, world!" let index = greeting.firstIndex(of: "..
Extended Grapheme Clusters ( 확장된 문자소 클러스터 ) Swift의 String과 Character은 Unicode와 호환됩니다. Swift의 String 타입은 Unicode scalar value로 빌드되며 Unicode scalar value는 character나 수식어를 위한 고유한 21bit 숫자로 이루어져 있습니다. 확장된 문자소 클러스터(extended grapheme cluster)는 사람이 읽을 수 있는 단일 문자로 하나 이상의 Unicode scalar sequence로 구성된 됩니다. 따라서 Swift의 Character 타입의 모든 인스턴스는 하나의 확장된 문자소 클러스터(extended grapheme cluster)로 표기됩니다! let eAcute: Ch..