fn main() { let a = [1.5f32; 50]; for i in &a { println!("{}", i); } }
error[E0277]: &[f32; 50]
is not an iterator
--> src\main.rs:3:11
|
3 | for i in &a {
| ^^ &[f32; 50]
is not an iterator
|
= help: the trait std::iter::Iterator
is not implemented for &[f32; 50]
= note: required by std::iter::IntoIterator::into_iter
如果数组个数修改为32及以下(如[1.5f32; 31])就没有问题,请解释一下!
1
共 2 条评论, 1 页
评论区
写评论那是不是这么写也还行。。。
因为 Rust 目前还的数组迭代器定义很奇葩,是手动实现的,只实现到了32个,因为还没有number泛型,没法自动实现。
具体可参阅:https://doc.rust-lang.org/std/primitive.array.html
这一片内容: