前提
Rustにて、条件によっては使うが、その条件によっては使わないという変数があるとします。
その変数を使わないのなら、その変数を作らない方がよりパフォーマンスが向上しそうです。
ですが、条件によって定義するしないをすることが一見できなそうです。
これをする方法はありますか?
実現したいこと
エラーが起きる以下のコードのようなことをしたい。
rust
1if more_info { 2 # より多くの情報が欲しい場合は、より多くの情報を計算するのに必要なキャッシュのための変数を作る。 3 let stack_for_more_info = Vec::new(); 4}; 5 6for data in datas { 7 ... 8 9 if more_info { 10 # より多くの情報を計算するためのデータを記憶する。 11 stack_for_more_info.push(...) 12 }; 13}; 14 15# より多くの情報を`stack_for_more_info`を元にして計算する。 16if more_info { ... }
発生している問題・エラーメッセージ
上記をすると、スコープにstack_for_more_info
という変数が存在しないというエラーが発生してしまいます。
試したこと
上の実現したいことにあるコードと、条件であるmore_info
の値に構わず変数を毎回定義して値を作るコードを試しました。
後者は動きますが、毎回変数を定義して使わない値を作ってしまいます。
また、これについてGoogleで検索するとif let ... = ... && 条件
のような書き方がいつか使えるようになるというような情報がありました。
ですが、いつか使えると書いてあるように、今のstableではこの書き方は使えませんでした。
補足情報(FW/ツールのバージョンなど)
cargo 1.62.1 (a748cf5a3 2022-06-08) rustc 1.62.1 (e092d0b6b 2022-07-16)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。