더북(TheBook)

잠깐, str이 뭐야?

앰퍼샌드 기호가 없는 &str은 우리가 다루는 실제 데이터 타입인 str일 뿐이다. 그러나 str은 길이가 고정되지 않으며, 값을 바꿀 수 없는 일련의 UTF-8 바이트이다. 길이를 알 수 없기 때문에 포인터로만 처리할 수 있다(참고로 스택 오버플로에서 매우 훌륭한 설명을 볼 수 있다. http://mng.bz/aP9z).

또는 러스트 문서를 인용하자면, ‘문자열 슬라이스’라고도 하는 str 타입은 가장 원시적인 문자열 타입이다. 일반적으로 대여된 형태인 &str(https://doc.rust-lang.org/std/primitive.str.html)로 볼 수 있다. 2.1.5절에서 러스트 대여에 대해 자세히 설명하겠다.

 

빠른 요약

텍스트를 소유하고 수정해야 하는 경우 String 타입을 만든다.

기본 텍스트를 단지 보기만 할 때는 &str을 사용한다.

구조체로 새 데이터 타입을 만들 때 문자열은 보통 String 필드 타입으로 만든다.

문자열/텍스트를 함수에 전달할 때 일반적으로 &str을 사용한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.