티스토리 뷰
Substring은 String의 일부를 말합니다.
예를 들어 Subscript를 사용하거나 prefix(_ :) 메소드를 사용해서 String에서 Substring을 가져오는 경우 스위프트에서는 String처럼 사용할 수 있습니다. 둘 다 String Protocol을 따르기 때문입니다.
하지만 String과 다르게 Substring은 작업을 수행하는 짧은 시간 동안 사용해야 합니다.
즉 Substring은 장기로 사용하는 용도가 아닙니다.
위와 같이 greeting은 문자열 Hello, world! 를 가집니다.
beginning에서는 greeting의 [..<index] 즉 ", "전까지의 문자를 substring 한 Hello를 가집니다.
여기서 beginning(substring)은 새로운 메모리를 할당하지 않고 기존에 greeting상수의 메모리를 사용할 수 있습니다.
그렇기 때문에 greeting(original string)이나 beginning(substring)이 수정되기 전까지 메모리를 복사하는 비용을 지불할 필요가 없습니다. (스위프트 - 성능 최적화)
이런 메모리 재사용은 메모리 할당 비용을 줄여줍니다.
WHY ! 스위프트의 Substring은 장기로 사용할 때 적합하지 않을까요
기존에 String의 메모리를 재사용하기 때문에 String문자열 전체가 Substring이 사용되는 한 메모리에서 유지되어야 하기 때문입니다.
즉 장기로 사용할 경우는 String인스턴스로 변환해 사용합니다.
https://developer.apple.com/documentation/swift/string
혹시 잘못된 부분이 있다면 말씀해주시면 감사하겠습니다. :-)
'Tech > Swift' 카테고리의 다른 글
Swift ARC에 대해서(2) (0) | 2019.04.19 |
---|---|
Swift ARC에 대해서(1) (0) | 2019.04.18 |
isEmpty와 count == 0 비교하기 (2) | 2019.04.05 |
스위프트 Copy-On-Write (0) | 2019.03.29 |
reverse()와 reversed()비교 (0) | 2019.03.24 |
- Total
- Today
- Yesterday
- Xcode
- RX
- 책
- 책 후기
- Algorithm
- ios
- 머신러닝
- rxswift
- string
- Animation
- 딥러닝
- 스위프트UI
- 알고리즘
- 문자열
- leetcode
- ReactiveX
- iOS SwiftUI
- objective-c
- 애니메이션
- stanford SwiftUI
- SWIFT
- Deep learning
- 독서
- wwdc
- swiftUI
- 스위프트
- objc
- 책 추천
- swift5
- ARC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |