요즘 Rust 를 좀 살펴보고 있습니다.
View 8,135 | 작성일2020.03.05 17:44
관련링크
본문
Rust 가 문자열을 다루는 부분에 좀 헛갈렸던 부분이 있었는데요.
학습 문서 중간즘에 Rust 의 String 은 indexer `[]` 를 통해 접근이 불가능하다는 내용이 나옵니다.
Rust 는 string literal 이 내부적으로 utf-8 로 인코딩된 byte 배열 데이터로 저장되기 때문에
특정 인덱스에 해당하는 값이 하나의 문자값이 아니므로 아예 index 를 통한 접근을 제공하지 않는다?
뭐 이런 내용입니다.
처음에 이 부분에서 좀 혼란을 느껐는데.. 이게 아마도 한동안 C# 을 주로 사용해 왔던 것과
Rust 의 문법이 최근에 등장한 언어답게 새련된? 부분들이 많기 때문에 그랬지 않나 생각합니다.
C# 의 string 은 utf-16 으로 인코딩된 char 의 컬렉션을 들고 있는 객체이고
Rust 는 오히려 C# 보다는 C++ 에 가깝게 raw byte array 를 들고 있는 형태인데
깔끔한 문법 표현덕에 자연스레 '뭐? 이게 왜 안돼?' 라고 생각했던 것 같습니다.
C++ 과 비교해 떠올려보면 딱히 이상하지 않은데 말이죠..;;