この例に関して 2 つの質問があります。
let a = [1, 2, 3];
assert_eq!(a.iter().find(|&&x| x == 2), Some(&2));
assert_eq!(a.iter().find(|&&x| x == 5), None);
&&x
だけではなく、クロージャー引数でが使用されるのはなぜx
ですか? オブジェクトへの参照を渡すことは理解して&
いますが、それを 2 回使用するとはどういう意味ですか?ドキュメントの内容がわかりません:
は参照を取り、多くの反復子は参照を繰り返し処理するため
find()
、引数が二重参照であるという混乱を招く可能性がある状況につながります。この効果は、以下の例で確認できます&&x
。Some(&2)
ではなくが使用されるのはなぜSome(2)
ですか?