Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 如何使用默认值初始化通用常量长度的数组?_Rust - Fatal编程技术网

Rust 如何使用默认值初始化通用常量长度的数组?

Rust 如何使用默认值初始化通用常量长度的数组?,rust,Rust,我想在结构A中初始化数组,但数组的长度是常量泛型。虽然我可以确保长度始终小于32,但似乎当前的编译器不支持这一点。此外,我还尝试了#![feature(const_evaluable_checked)],该功能正常工作,但此功能已从最新的编译器中删除。你有什么想法吗 #![特征(const_泛型)] 结构B 哪里 E:复制+默认值, { f:E, } 结构A 哪里 E:复制+默认值, { 数组:[选项;项数量], } 暗示 哪里 E:复制+默认值, { fn new()->Self{ 自我{ 数

我想在结构A中初始化数组,但数组的长度是常量泛型。虽然我可以确保长度始终小于32,但似乎当前的编译器不支持这一点。此外,我还尝试了
#![feature(const_evaluable_checked)]
,该功能正常工作,但此功能已从最新的编译器中删除。你有什么想法吗

#![特征(const_泛型)]
结构B
哪里
E:复制+默认值,
{
f:E,
}
结构A
哪里
E:复制+默认值,
{
数组:[选项;项数量],
}
暗示
哪里
E:复制+默认值,
{
fn new()->Self{
自我{
数组:Default::Default(),
}
}
}
fn main(){
设aa=A:::new();
}

另外,我不知道我是否可以使用,因为B结构也需要E泛型。

由于常量泛型仍然非常新,并且
默认值
非常旧,所以它只对长度小于32的数组实现。处理此问题的最简单方法是只添加一个边界,强制数组实现
Default
,这样以后,一旦
Default
对所有长度的数组都实现,代码仍然可以工作:

impl A
哪里
E:复制+默认值,
//要求数组实现默认值
[选项;项目编号]:默认值,
{
fn new()->Self{
自我{
数组:Default::Default(),
}
}
}

由于const泛型仍然是非常新的,而且
Default
非常旧,因此它只在长度小于32的数组中实现。处理此问题的最简单方法是只添加一个边界,强制数组实现
Default
,这样以后,一旦
Default
对所有长度的数组都实现,代码仍然可以工作:

impl A
哪里
E:复制+默认值,
//要求数组实现默认值
[选项;项目编号]:默认值,
{
fn new()->Self{
自我{
数组:Default::Default(),
}
}
}