Rust에서 문자열을 STR로 변환
Rust는 강력하고 안전하도록 설계된 언어입니다. 또한 시스템 프로그래밍에서 스크립팅에 이르기까지 모든 작업의 성능에 중점을 둡니다.
Rust의 String 유형은 변경할 수 없지만 String 유형에는 문자열을 만들고 조작하는 메서드가 있습니다. 이 기사에서는 String
및 &static str
에 대해 자세히 설명합니다.
Rust의 문자열 개념
String은 확장 가능한 8비트 부호 없는 배열인 Vec
벡터를 포함하는 구조체입니다.
String은 str
과 달리 데이터의 소유권을 보유합니다. 따라서 String의 값을 변수에 할당할 때 & 또는 차용 상태를 활용하는 것이 필수적이지는 않습니다.
초기화하는 동안 String의 크기는 컴파일 타임에 알려지거나 알려지지 않을 수 있지만 길이가 한계에 도달할 때까지 확장될 수 있습니다.
통사론:
let my_string = String::from("Hello World");
Rust의 str
개념
Rust에서 str
은 문자열 리터럴을 정의하는 기본 유형입니다. 그 정보는 프로그램 바이너리의 메모리 위치에 할당됩니다.
스트링 슬라이스
슬라이스는 항목 시퀀스를 포함하고 구문으로 표시되는 보기입니다. 슬라이스에는 소유권이 없지만 항목이 나타나는 순서를 참조할 수 있습니다.
결과적으로 문자열 슬라이스는 문자열의 요소 시퀀스에 대한 참조입니다.
let hello_string = String::from("hello world");
let hello_slice = &hello_string[4.8];
"hello world"
문자는 hello_string
변수에 저장됩니다. 확장 가능한 배열인 String에는 각 문자에 대한 위치 또는 인덱스가 포함되어 있습니다.
문자열 리터럴
문자열 리터럴은 텍스트를 큰따옴표로 묶어 구성됩니다. 문자열 리터럴은 약간 다릅니다.
읽기 전용 메모리에 실행 파일의 일부로 저장된 "사전 할당된 텍스트"
를 참조하는 문자열 조각입니다. 즉, RAM은 소프트웨어와 함께 제공되며 스택 캐시에 의존하지 않습니다.
Rust에서 문자열을 str
로 변환
문자열은 코드의 전체 수명 동안 존재하지 않을 수 있습니다. 이는 &'static str
수명이 의미하는 것이므로 &'static str
을 얻을 수 없습니다. String의 수명으로 지정된 슬라이스만 얻을 수 있습니다.
예제 코드:
fn main() {
let hello_string = String::from("Hello world");
print_infi(&hello_string);
print!("Adil {}", hello_string);
}
fn print_infi(infi: &str) {
println!("Steve {} ", infi);
}
출력:
Steve Hello world
Adil Hello world
Rust에서 str
과 문자열의 차이점
String |
Str |
|
---|---|---|
1. | 변하기 쉬운 | 불변 |
2. | 컴파일 시 크기를 알 수 없습니다. | 컴파일 시 크기를 알 수 있습니다. |
삼. | 데이터는 힙에 저장됩니다. | 데이터는 애플리케이션 바이너리의 메모리 위치에 저장됩니다. |
4. | 단일 str 변수를 할당하려면 사용하거나 참조하십시오. |
String 변수 값을 할당하기 위해 사용하거나 참조할 필요가 없습니다. |
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook