Comprehensive Rustという、GoogleのAndroidチームが執筆したドキュメントがある。
4日かけてRustを包括的に学ぶ目的のものなのだが、これをチラチラ読んでいる。
今日は1日目の午前中のカリキュラムのうち、References
より。
(全4日をそれぞれMorningとAfternoonで分けて実施する想定になっているみたい。)
コード
Rust
は参照を操作できる(という言い方でいいのかはわからない)ようで、以下のように書くことができる。
fn main() { let mut x: i32 = 10; let ref_x: &mut i32 = &mut x; *ref_x = 20; println!("x: {x}"); }
CやC++に馴染みのある方ならすぐにわかるのだろうけれど、私の場合は多少考えてしまった。
ref_x
という変数が変数x
の参照をバインドして、その参照先を20に変更することで結果としてx自体の値が変更された・・という理解*1。
この辺はC言語をやってこなかったことを多少後悔。*2