THIS IS ELLIE

Swift String Substring 본문

개발/Swift

Swift String Substring

Ellie Kim 2019. 4. 12. 02:44

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

 

String - Swift Standard Library | Apple Developer Documentation

A string is a series of characters, such as "Swift", that forms a collection. Strings in Swift are Unicode correct and locale insensitive, and are designed to be efficient. The String type bridges with the Objective-C class NSString and offers interoperabi

developer.apple.com

 

혹시 잘못된 부분이 있다면 말씀해주시면 감사하겠습니다. :-)

반응형

'개발 > 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