【发布时间】:2014-07-11 16:19:31
【问题描述】:
当我尝试使用此代码在全局范围内添加一个 const 数组时:
static NUMBERS: [i32] = [1, 2, 3, 4, 5];
我收到以下错误:
error: mismatched types:
expected `[i32]`,
found `[i32; 5]`
(expected slice,
found array of 5 elements) [E0308]
static NUMBERS2: [i32] = [1, 2, 3, 4, 5];
^~~~~~~~~~~~~~~
我发现处理这个问题的唯一方法是在类型中指定长度:
static NUMBERS: [i32; 5] = [1, 2, 3, 4, 5];
有没有更好的方法?应该可以在不手动计算元素的情况下创建数组。
【问题讨论】:
-
如果您正在寻找一些关于为什么 Rust 是这样设计的讨论,请参阅this forum thread。
-
如果你想写成
const,最好写成:const NUMBERS: [i32; 5] = [1, 2, 3, 4, 5];
标签: arrays static literals rust