더북(TheBook)

코드 2-10 참조 전달하기

fn main() {
    let mut address = String::from("Street 1"); 

    add_postal_code(&mut address); 

    println!("{}", address); 
}

fn add_postal_code(address: &mut String) { 
    address.push_str(", 1234 Kingston"); 
}

가변 변수를 선언하고 String 값을 할당한다.

add_postal_code 함수에 address 참조를 전달한다.

수정된 address를 출력한다.

함수 매개변수는 String의 가변 타입 참조를 기대한다.

push_str 메서드는 String을 직접 변경한다.

add_postal_code 함수는 함수 범위 내에서 해당 소유권을 대여받는다. 따라서 main 함수의 address 변수는 (이전과는 달리) 출력을 시도하기 전에는 범위를 벗어나지 않는다.