코드 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 변수는 (이전과는 달리) 출력을 시도하기 전에는 범위를 벗어나지 않는다.