문자열 리터럴과 문자열 일치
이 튜토리얼은 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()
은 더 간단하고 더 강력한 유형 검사를 시행합니다.