Swift String Substring
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
혹시 잘못된 부분이 있다면 말씀해주시면 감사하겠습니다. :-)