이전 게시글에서 split과 components의 차이에 대해서 알아보았는데요. split의 return type에 대해서 좀 더 알아보려고 합니다.
components의 return type은 [String]이지만 split의 return type은 [String.SubSequence]입니다.
String.SubSequence
Apple 공식 문서에 따르면 String.SubSequence는 SubString의 별명으로 지정되어 있습니다.
별명을 지정하는 typealias는 다음 게시글에 따로 정리하겠습니다.
Substring
- split(), prefix()등 과 같은 method를 통해 원본 문자열에서 가져온 부분 문자열 타입입니다.
- 부분 문자열(Substring)은 원본 문자열(String)의 메모리를 참조하고 있습니다.
- 원본 문자열은 부분 문자열이 사용되는 한 메모리가 해제되지 않습니다. 따라서 장기 저장에 부적합하기에 String으로 타입 변환 후 저장하는것이 메모리 관리 측면에서 유리합니다.
let tests: [String] = "A B C".split(separator: " ").map(String.init)
let text: String = String("A B C".split(separator: " ")[0])
'iOS > Swift' 카테고리의 다른 글
iOS(Swift) - Class와 Struct의 차이 5가지 (0) | 2023.11.16 |
---|---|
iOS(Swift) - split VS components (0) | 2022.07.07 |