Rust에서 문자열 연결
이 글은 Rust에서 문자열을 연결하는 방법을 보여줍니다.
Rust에서 concat!()
매크로를 사용하여 문자열 연결
concat!()
는 Rust에서 두 문자열을 정적 문자열로 연결하는 데 사용되는 매크로로 간주됩니다. 여러 개의 쉼표로 구분된 리터럴이 필요하며 이에 대한 표현식 유형은 &'static str
입니다.
예제 코드:
fn main() {
println!("{}", concat!("bat", "man"))
}
출력:
batman
Rust에서 concat()
메서드를 사용하여 문자열 연결
Rust의 concat()
메서드는 T
유형의 슬라이스를 U
유형의 단일 값으로 병합하는 데 사용됩니다. 문자열이 벡터에 있는 경우 concat()
함수로 문자열을 연결할 수 있습니다.
벡터는 이 접근 방식을 사용하여 단일 문자열 값으로 확장됩니다.
예제 코드:
fn main() {
let v = vec!["bat", "man"];
let s: String = v.concat();
println!("{}", s);
}
출력:
batman
소유하고 빌린 문자열을 사용하여 Rust에서 문자열 연결
문자열 연결에 대한 결과를 저장할 메모리를 할당해야 합니다. 우리가 사용하는 방법이 첫 번째 문자열을 연결된 문자열로 수정하는 것이라면 첫 번째 문자열은 소유 문자열만이어야 합니다.
그러나 문자열이 연결되었지만 수정되지 않은 경우 문자열은 소유 문자열이거나 빌린 문자열이거나 두 문자열의 혼합일 수 있습니다.
Rust에서 소유 문자열을 생성하려면 아래 예제 코드와 같이 to_owned
를 사용해야 합니다.
let os: String = "Welcome".to_owned();
빌린 문자열은 다음과 같습니다.
let bs: &str = "Home";
첫 번째 문자열에 대한 코드 예제가 수정된 다음 연결된 문자열은 다음과 같습니다.
fn main() {
let mut os: String = "Hello ".to_owned();
let bs: &str = "World";
os.push_str(bs);
println!("{}", os);
}
출력:
Hello World
여기서 우리는 소유한 문자열을 가지고 있기 때문에 문자열을 변경할 수 있습니다. 메모리 할당을 재사용할 수 있으므로 효율적인 방법으로 간주됩니다.
유사한 사례가 &str
로 역참조될 수 있는 &string
과 같은 String
및 String
에 사용할 수 있습니다.
예제 코드:
fn main() {
let mut os: String = "Welcome".to_owned();
let second_os: String = "Home".to_owned();
os.push_str(&second_os);
println!("{}", os);
}
출력:
WelcomeHome
아래에 사용된 예제 코드는 두 문자열을 모두 빌린 코드입니다.
예제 코드:
fn main() {
let bs1: &str = "Welcome";
let bs2: &str = "Home";
let together = format!("{}{}", bs1, bs2);
println!("{}", together);
}
출력:
WelcomeHome