問題一覧に戻る
初級所有権
問題30: 借用(参照)
借用は&記号で作成する不変参照です。所有権を移動せずに値へのアクセスを提供します。複数の不変参照を同時に作成でき、元の変数も使用可能です。関数に参照を渡すと、関数実行後も元の変数を使い続けられます。これにより効率的で安全なデータ共有が可能になります。
fn main() {
let s = String::from("hello");
// 参照を作成
let r1 = s;
let r2 = s;
// 複数の読み取りが可能
println!("r1: {}", r1);
println!("r2: {}", r2);
println!("s: {}", s);
// 借用する関数
fn calculate_length(s: String) -> usize {
s.len()
}
let len = calculate_length(s);
println!("Length: {}", len);
println!("Still can use s: {}", s);
}