条件が真である配列内の要素を取得したい。 the trait bound '&{integer}: std::cmp::PartialEq<{integer}>' is not satisfied
たとえばIは、配列要素が0借用した整数とリテラル整数を比較する
fn main() {
let lim = 10;
let mut sieve = vec![0; lim+1];
sieve[1] = 1;
println!("{:?}", sieve.iter()
.enumerate()
.filter(|&(_, c)| c != 0)
.map(|(i, _)| i)
.collect::<Vec<usize>>());
}
されているが、これはコンパイルエラーであるすべてのインデックスを希望します。私がc.clone() != 0
を使用すると動作します。
私がエラーメッセージを正しく理解していれば、借りている整数と整数を借りて比較することはできません。私はなぜそれが不可能であってはならないのか分かりません。
はい 'への変更* c'は動作します。しかし、なぜ私はそれを逆参照しなければならないのですか? –