반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- OperationQueue
- entrypoint
- 동시성프로그래밍
- 연산 프로퍼티
- tableViewCell
- 후행 클로저
- CoreLocation
- Understanding Swift Performance
- 원격 푸시
- UIButton
- userdefaults
- firebase
- viewcontroller
- AppTransportSecurity
- IBOutlet
- property wrapper
- RunLoop
- for-in
- ios
- weak
- uikit
- DispatchQueue
- IBOutletCollection
- Remot Push
- SWiFT
- 진입점
- 트레일링 클로저
- Choosing Between Structures and Classes
- WWDC16
- TableView
Archives
- Today
- Total
iOS 공부하는 감자
split() vs components() 본문
반응형
공통 :
- 특정 문자를 기준으로 문자열을 분리하여 Collection 형태로 반환한다.
Split()
- [Substring] 형태로 반환한다. (서브스트링은 원본값의 메모리를 공유하므로, 메모리가 조금 더 효율적으로 작동됨) 맨 아래 참고
- 클로저를 사용하여 (분리하는데) 기준이 되는 문자를 구체적으로 정의할 수 있다. (활용도가 좋아짐) // CharacterSet 사용 불가
- maxSplit 매개변수를 사용하여 최대 분리될 수 있는 횟수를 정해줄 수 있다. (default : Int.max)
- omittingEmptySubsequencece 매개변수는 Bool을 입력받는다. (= 빈 시퀸스 생략)
- true : 비어있지 않은(non-empty) 서브 시퀸스만 반환한다. (기본값)
- false : separator의 인스턴스 결과에 빈(empty) 서브 스퀸스를 돌려준다.
var userName = "a i ! d ! e n"
// 클로저 사용 예시
var removed = userName.split(whereSeparator: {
$0 == " " || $0 == "!"
}).joined()
print(removed) // aiden
Components()
- [String] : 문자열 배열 형태로 반환한다.
- separatedBy 매개변수로 전달하는 특정 값을 기준으로 문자열을 분리한다. (CharacterSet) // 클로저 사용 불가
split이 components보다 빠르게 동작한다.
1) omittingEmptySubsequencece의 차이
- split은 빈 시퀸스의 처리를 선택할 수 있는 반면, components는 빈 시퀸스가 반드시 포함된 결과를 반환한다.
- ex) 공백을 기준으로 분리하면서 빈칸이 있을 때, ""을 돌려줄건지 여부
- Zedd님 글 참고..
2) split의 반환값은 Substring이다.
- Substring(String.SubSequence)는 원본 문자열의 메모리를 공유받기 때문에 메모리 공간을 조금 더 효율적으로 사용한다.
- components의 반환값은 문자열 배열
반응형
'Swift' 카테고리의 다른 글
Swift) Choosing Between Structures and Classes (0) | 2023.01.30 |
---|---|
Operation, OperationQueue (feat. GCD) (0) | 2022.12.28 |
Swift) Property Wrapper (0) | 2022.07.20 |
문자열 다루기 (0) | 2022.01.31 |