我正在尝试使用可以在我的代码上重复使用的一些设置初始化Vec<String>
。
我正在使用const left: Vec<String> = vec![...
,但这不起作用:
error[E0308]: mismatched types
--> names-generator.rs:2:27
|
2 | const left: Vec<String> = vec![
| ^ expected slice, found array of 93 elements
|
= note: expected type `Box<[std::string::String]>`
= note: found type `Box<[&str; 93]>`
= note: this error originates in a macro outside of the current crate
建议这样做的方法是什么?
更新: 我不知道这是如何标记为重复。这两个相关的问题是无关的。
答案 0 :(得分:8)
你想让它变得可变吗?如果没有,你可以使用数组,例如:
const LEFT: [&'static str; 3] = ["Hello", "World", "!"];
# or
const LEFT: &'static [&'static str] = &["Hello", "World", "!"];
const
基本上被复制到任何地方,因此第二种形式可能更好,具体取决于数组的大小。