YagomCareerStarterCamp-6 / Interview-study-in-swift

1 stars 0 forks source link

[5주차] Q3_String은 왜 subscript로 접근이 안되는지 설명하시오. #15

Open seohyeon2 opened 1 year ago

seohyeon2 commented 1 year ago

꼬리질문

Groot-94 commented 1 year ago

String은 유니코드로 변환해서 사용하기 때문에 같은 String도 다른 값을 가지고 있을 수 있어서 Int와 같은 index로 접근할 수 없다. 하지만, Int가 아닌 String.index로의 접근은 가능하다.

kiwi1023 commented 1 year ago

Swift의 String은 Struct타입이고, characters의 collection이다. 즉 Array의 element가 Character인 배열이다.

하지만 Swift에서 String은 subscript, 즉 str[0]같이 Int로 접근하지 못하고, String.index로 접근해야한다.

그 이유는 Swift에서 Character는 1개 이상의 Unicode Scalar로 이루어져 있다. 즉 크기가 가변적이다.(스위프트가 메모리 최적화를 하기 때문에)

Judy-999 commented 1 year ago

String은 Character의 모음인 유니코드의 문자열 값으로 Int 인덱스로 접근할 수 없어 String의 인덱스 값으로 접근해야 합니다.

seohyeon2 commented 1 year ago

답변