Swift
String은 왜 subscript로 접근이 안되는지 설명하시오.
iosun
2023. 3. 20. 22:09
처음 swift로 알고리즘 문제를 풀 때 이런 에러를 몇 번 본 적 있다.
어라..파이썬은 이런 에러 안떴는데..
Int를 이용해서 String의 subscript를 사용할 수 없고 대신 String.Index를 사용하라고 한다.
왜지..?
애플문서에 따르면 String은 유니코드 문자열 값 이라고 한다.
유니코드는 가변 길이 문자 인코딩으로 눈에 보이는 문자열이 하나더라도 실제 길이는 다르다.
따라서 Int로는 subscript를 사용할 수 없는 것이다.
만약에 String의 subscript를 사용하고 싶다면
let str = "hello sun"
let index = str.index(str.startIndex, offsetBy: 2)
print(str[index])
String.Index로 subscript를 사용해주면 된다.
+ 추가로 알고리즘 문제를 풀 때는 문자열을 배열로 형변환을 해 사용하는게 편하다.
let str = "hello sun"
let arr = Array(str)
print(arr[3])