のは、私が素数との力のベクトルを持っているとしましょう:`&(&usize、&u32)`のようなパターンにどのように一致させるのですか?
let mut primes: Vec<usize> = ...;
let mut powers: Vec<u32> = ...;
それは事実primes.len() == powers.len()
ことがあります。
私は(このコードは、適切な参照文献とderefsが欠落している)ユーザーに0の対応するパワー値を持つ素数のリストを返すしたいと思います:
primes.iter().zip(powers)
.filter(|(p, power)| power > 0)
.map(|(p, power)| p)
.collect::<Vec<usize>>()
コンパイラは多くのことを不平を言っています、あなたが想像しているように。特に、filter
はタイプ&(&usize, &u32)
の引数を受け取りますが、パターンマッチングでは正しく参照解除されていません。私はコンパイラが示唆しているさまざまなパターンを試しました(例えば、&(&p, &power)
、これは私にとって最も理にかなっていますが)。 power > 0
の比較を問題なく行うことができるように、そして最後にVec<usize>
を収集できるように、パターンマッチングを正しく実行するにはどうすればよいですか?作品