没有实现{{integer}%&std :: ops :: Range <{integer}>`的实现

时间:2019-10-20 07:30:40

标签: rust

我理解该错误,但仍然不知道如何将i强制转换为u32/integer

let n = 2;
for i in [1..10].into_iter() {
  if n % i == 0 {
    ...
  }
}

if n % (i as u32) == 0不起作用

  

帮助:尚未为std::ops::Rem<&std::ops::Range<{integer}>>实现特征{integer}

1 个答案:

答案 0 :(得分:4)

在您的代码中,[1..10]实际上是一个固定大小的数组,范围为1..10作为其唯一元素。您要迭代范围本身而不是该1元素数组:

let n = 2;
for i in 1..10 {
  if n % i == 0 {
    ...
  }
}