Rust “为什么?”;“大的”;阵列未实现std::fmt::调试?
我可以在Rust “为什么?”;“大的”;阵列未实现std::fmt::调试?,rust,Rust,我可以在Debug中打印以下数组: fn main() { let array = [0; 5]; println!("{:?}", array); } 但是,如果大小更大,比如说50,traitstd::fmt::Debug默认情况下不会实现: fn main() { let array = [0; 50]; println!("{:?}", array); } 编译错误: 错误[E0277]:未满足特性绑定的[{integer};50]:std::fmt:
Debug
中打印以下数组:
fn main() {
let array = [0; 5];
println!("{:?}", array);
}
但是,如果大小更大,比如说50,traitstd::fmt::Debug
默认情况下不会实现:
fn main() {
let array = [0; 50];
println!("{:?}", array);
}
编译错误:
错误[E0277]:未满足特性绑定的[{integer};50]:std::fmt::Debug
为什么对某些大小的阵列没有实现std::fmt::Debug
特性?来自:
大小从0到32(含)的数组实现以下功能
特征(如果元素类型允许):
- 克隆(仅当T:Copy时)
- 调试
- IntoIterator(为&[T;N]和&mut[T;N]实现)
- PartialEq,PartialOrd,Eq,Ord
- 散列
- AsRef,AsMut
- 借
- 违约
我希望2017年将是积分通用参数的一年(我真的希望它不仅仅是积分,但积分已经非常有用了)。对于跟踪问题。它越来越近了。还有人说要更快地实现通用数组,看一年过去了。在当前的rust版本中,定义已更改为“任何大小的数组在元素类型允许的情况下实现以下特性:Debug、IntoIterator(为&[T;N]和&mut[T;N]实现),PartialEq,PartialOrd,Eq,Ord,Hash,AsRef,AsMut,Borrow,BorrowMut“,只有默认特征仍然限于32个元素数组。作为临时解决方法,您可以使用
&[T]
,因为它与长度无关。