Option<Vec<>>
を繰り返し処理しようとしています。イテレーターオンオプション<Vec<>>
#[derive(Debug)]
pub struct Person {
pub name: Option<String>,
pub age: Option<u64>,
}
#[derive(Debug)]
pub struct Foo {
pub people: Option<Vec<Person>>,
}
単純に私が
for i in foo.people.iter() {
println!("{:?}", i);
}
を使用する代わりにVec
のすべての要素を反復しています、私は実際には全体Vec
を表示しています。それは私がOption
の唯一のリファレンスを反復しているようなものです。以下のものを使用して、
、私はVec
内容を反復処理しています:
for i in foo.people.iter() {
for j in i.iter() {
println!("{:?}", j);
}
}
私は、これが最も快適な構文であることを確認していない、私はあなたが実際にコレクションに反復するOption
最初のラップを解除すべきであると考えています。
次に、常に1つの参照がある場合はOption::iter
を実際に使用できる場所はわかりません。
Hereは、プレイグラウンドへのリンクです。
何が質問ですか? – Lee
どちらの場合にOption <>。iter()を使うべきなのか分かりませんが、たぶん1つの項目を返すという誤った感じがします。 –
@XavierT。 'Option :: iter'は、オプションをゼロ要素のコンテナとして扱う場合に設計されています。それは私にとってもあまり有益ではないように思われますが、それは考え方です。 – user4815162342