Arrays 如何在大多数值相同但某些值不同的情况下初始化静态数组?
我想使用静态数组或常量数组,但使用Arrays 如何在大多数值相同但某些值不同的情况下初始化静态数组?,arrays,syntax,static,rust,Arrays,Syntax,Static,Rust,我想使用静态数组或常量数组,但使用[T;N]语法以外的其他方法初始化它。我需要定义特定的元素,但所有其他值都可以默认为0或其他值 在C中,可以执行以下操作: 字节数组[256]={ [0x1F]=(1没有与您的C代码段等效的锈迹。显示仅允许3种简单模式: 空的 价值,价值,价值,等等 价值;大小 因此,目前使用数组语法,您无法做到这一点 现在,让我们看一下宏的解决方案。没有“计数”的方法,所以除非你为Rust编译器编写一个宏,否则你不能用宏来计算 我的首选解决方案是在编译之前使用其他工具生成文件
[T;N]
语法以外的其他方法初始化它。我需要定义特定的元素,但所有其他值都可以默认为0或其他值
在C中,可以执行以下操作:
字节数组[256]={
[0x1F]=(1没有与您的C代码段等效的锈迹。显示仅允许3种简单模式:
空的
价值,价值,价值,等等
价值;大小
因此,目前使用数组语法,您无法做到这一点
现在,让我们看一下宏的解决方案。没有“计数”的方法,所以除非你为Rust编译器编写一个宏,否则你不能用宏来计算
我的首选解决方案是在编译之前使用其他工具生成文件。例如,您可以在编译之前使用Cargo
将来可能会有一个解决方案。about const函数可以提供在编译时执行所需操作的可能性,但这目前是不可能的
static ARRAY: [u8; 256] = {
// x is some arbitrary number of elements
let mut array = [0, x];
array[i] = 'b',
array[j] = 'a',
array[k] = 'd',
array
};