前提・実現したいこと
for文やwhile文の中で再定義(シャドーイング)した変数が、元に戻ってしまいます。
Rustを触り始めたばかりで考え方がわからず、解決策というよりは、どういったロジックで以下のようになってしまうのか教えていただけますでしょうか。
(例えばpythonで同じコードを書くと”想定していた出力”の用になると思います)
該当のソースコード
Rust
1fn main(){ 2 let x = 1; 3 for _ in 1..4{ 4 println!("x in first {}", x); 5 let x = 5; 6 println!("x in second {}", x); 7 } 8}
出力
実際の出力
x in first 1
x in second 5
x in first 1
x in second 5
x in first 1
x in second 5
想定していた出力
x in first 1
x in second 5
x in first 5
x in second 5
x in first 5
x in second 5
その他
これまでpythonを少し触ったことがある程度で、違う系統の言語を触ってみたいと思い勉強を始めたところです。
基本的な質問で申し訳ありません。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/07 12:25