Rust에서 문자열 연결

Nilesh Katuwal 2023년6월21일
  1. Rust에서 concat!() 매크로를 사용하여 문자열 연결
  2. Rust에서 concat() 메서드를 사용하여 문자열 연결
  3. 소유하고 빌린 문자열을 사용하여 Rust에서 문자열 연결
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과 같은 StringString에 사용할 수 있습니다.

예제 코드:

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

관련 문장 - Rust String