質問
Rustの構造体において、コンストラクタとしてnew関数を用意しました。そのnewの関数の中で、初期化を補助する関数としてinit()を呼ぼうとした場合、引数に&mut selfを取ることができないので以下のようにプログラムをしました。
コンパイルは通っているのでプログラムとしては動くのですが、これは書き方として推奨されるものでしょうか?
ご教授いただけると幸いです。
コード内容
下記のコードは実際のものではなく、簡略化したものです。
実際のコードは、長いのでリンクだけ載せておきます。https://github.com/DirectKidman/bingo_prob_rust/blob/master/src/solver/faster.rs
rust
1struct Example { 2 vec1: Vec<usize>, 3 vec2: Vec<usize>, 4} 5 6impl Example { 7 pub fn new(vec_size: usize) -> Self { 8 let mut example = Example { 9 vec1: vec![0; vec_size], 10 vec2: vec![10; vec_size], 11 }; 12 example.init(); 13 example 14 } 15 16 pub fn init(&mut self) { 17 // complicated process(複雑な処理をここで行う) 18 } 19}
実行環境
cargo 1.51.0 (43b129a20 2021-03-16)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/30 09:05