我试图用一些可以在代码中重用的设置初始化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

这样做的推荐方式是什么?

推荐答案

你希望它是可变的吗?值必须是String秒吗?如果两者的答案都是"否",则可以使用字符串片段数组([&str; N])而不是Vec<String>:

const LEFT: [&'static str; 3] = ["Hello", "World", "!"];
// or
const LEFT: &'static [&'static str] = &["Hello", "World", "!"];

const基本上是在使用它们的任何地方复制的,因此根据数组的大小,第二种形式可能更可取.

Rust相关问答推荐

在Tauri中获取ICoreWebView 2_7以打印PDF

在没有引用计数或互斥锁的情况下,可以从Rust回调函数内的封闭作用域访问变量吗?

展开枚举变量并返回所属值或引用

Rust类似功能是C++命名空间吗?

在文件链实施中绕过borrow 判断器

如何修复&q;无法返回引用函数参数的值在异步规则中返回引用当前函数&q;拥有的数据的值?

无法将 rust 蚀向量附加到另一个向量

如何实现Deref;多次;?

在没有任何同步的情况下以非原子方式更新由宽松原子操作 Select 的值是否安全?

如何将 &[T] 或 Vec<T> 转换为 Arc<Mutex<[T]>>?

错误:将自定义 proc_macro 与用Rust 的宝贝编写的属性一起使用时,无法在此范围内找到属性

在异步 Rust 中,Future 如何确保它只调用最近的 Waker?

使用 `clap` 在 Rust CLI 工具中设置布尔标志

如何异步记忆选项中的 struct 字段

TcpStream::connect - 匹配武器具有不兼容的类型

隐式类型闭包的错误生命周期推断

相交着色器从 SSBO 中读取零

以下打印数组每个元素的 Rust 代码有什么问题?

为什么这个闭包没有比 var 长寿?

这个 match 语句的默认值应该是什么,还有一种方法可以解开 Some case (chess in rust)