struct Sample { value: i32, } fn main() { let sample = Sample { value: 10 }; println!("{}", sample.value); }
この出力は当然 10 になりますね。
それではこの場合はどうなるでしょうか?
struct Sample { value: i32, } fn main() { let sample = Sample { value: 10 }; let Sample { value } = sample; println!("{}", value); }
パターンマッチングでvalueに10が入るので出力は10になります。
そして最近驚いたのですが、次のような場合にも出力が10になるんですね。
struct Sample { value: i32, } fn main() { let sample = Sample { value: 10 }; let Sample { value: new_value } = sample; println!("{}", new_value); }