refキーワード

ref キーワード

参照として値を受け取ることが出来る

let ref num = 5; // &i32

パターンマッチ内でも使用することが出来る

let mut triple = (1, 2, 3);
match triple {
    (1, ref mut second, 3) => *second *= 2,
    _ => panic!(),
}
dbg!(triple); // (1, 4, 3)
let mut triple = (1, 2, 3);
match triple {
    // NG
    (1, &mut second, 3) => *second *= 2,
    _ => panic!(),
}
dbg!(triple); // (1, 4, 3)