Swift의 문자열 String은 C언어 기반의 문자열과는 차이가 있다. C언어 기반의 다른 언어들에서는 인덱스 참조를 사용해서 원하는 글자를 참조하고 변경할 수 있지만 Swift에서는 인덱스 참조가 불가능하다.
애플에서 유니코드까지 고려하면 character 크기가 항상 1바이트일 수 없기 때문에 고려해서 만든 String타입이라고 하는데, 이 부분은 추후에 다시 확인해봐야 할 것 같다.
우리가 다른 언어들에서처럼 문자열에 대해 인덱스 참조를 하기 위해서는 문자열을 배열로 바꾸는 것이 필요하다.
import Foundation
let myString: String = "Hello, World!"
let myArray: Array<Character> = Array(myString)
print(type(of: myArray))
// Array<Character>
print(myArray)
// ["H", "e", "l", "l", "o", ",", " ", "W", "o", "r", "l", "d", "!"]
import Foundation
let myString: String = "Hello, World!"
let myArray: Array<Character> = myString.map{ $0 }
print(type(of: myArray))
// Array<Character>
print(myArray)
// ["H", "e", "l", "l", "o", ",", " ", "W", "o", "r", "l", "d", "!"]