문자열 리터럴과 문자열 일치

Nilesh Katuwal 2023년6월21일
  1. 러스트의 문자열
  2. Rust의 문자열 리터럴
  3. Rust에서 문자열을 &str로 변환
문자열 리터럴과 문자열 일치

이 튜토리얼은 Rust에서 문자열 리터럴과 문자열을 일치시키는 것에 관한 것입니다.

러스트의 문자열

String 유형은 문자열의 내용을 소유하므로 가장 많이 사용되는 문자열 유형입니다. 기본 str과 밀접한 관련이 있습니다.

Rust에서 문자열은 String&str의 두 가지 유형으로 분류됩니다.

String은 바이트 벡터(Vec<u8>)로 저장되지만 유효한 UTF-8 시퀀스로 보장됩니다. 문자열은 확장 가능하고 null로 종료되지 않는 힙 할당 변수입니다.

&str은 항상 유효한 UTF-8 시퀀스를 가리키는 슬라이스(&[u8])이며 &[T]를 사용하여 보는 방법과 유사하게 문자열을 보는 데 사용할 수 있습니다. Vec<T>로.

String::from을 사용하여 리터럴 문자열에서 String을 만들 수 있습니다.

예:

let _welcome = String::from("Welcome to the world of Rust");

Rust의 문자열 리터럴

특수 문자가 포함된 문자열 리터럴을 표현하는 방법에는 여러 가지가 있습니다. 모두 유사한 &str이 됩니다. 따라서 가장 편리한 형식을 사용하는 것이 좋습니다.

때때로 이스케이프할 문자가 너무 많거나 문자열을 입력하는 것이 더 편리합니다. 원시 문자열 리터럴이 사용되는 경우입니다.

예:

fn main() {
    let rawString = r"This is an example of raw string: \x3F \u{211D}";
    println!("{}", rawString);

    let spec_char = r#"I learnt that: "Quotes can also be used!""#;
    println!("{}", spec_char);
}

출력:

This is an example of raw string: \x3F \u{211D}
I learnt that: "Quotes can also be used!"

원시 문자열에 따옴표를 추가해야 하는 경우 위의 코드 줄에서 사용한 것처럼 # 쌍을 추가해야 합니다.

문자열 리터럴에는 줄 바꿈이 있을 수 있습니다. 줄이 끝나면 줄 바꿈 (U+000A) 또는 한 쌍의 캐리지 리턴과 줄 바꿈 (U+10000, U+10000)이 될 수 있습니다.

이스케이프 처리되지 않은 U+005C 문자가 줄바꿈 바로 앞에 나타날 때 주목할만한 예외가 발생합니다. U+005C 문자와 다음 행의 모든 공백은 U+000A로 변환되지 않습니다.

Rust에서 문자열을 &str로 변환

String&str로 변환하려면 .as_str()을 사용해야 합니다.

예:

fn main() {
    let the_string = String::from("z");
    match the_string.as_str() {
    "x" => println!("Hello"),
    "y" => println!("There"),
    "z" => println!("Hello Rust!!!"),
    _ => println!("something else!"),
    }
}

출력:

Hello Rust!!!

.as str()은 더 간단하고 더 강력한 유형 검사를 시행합니다.

관련 문장 - Rust String