提问人:user52366 提问时间:11/9/2023 更新时间:11/10/2023 访问量:85
在 Rust 中声明 Vec 并具有“静态生存期失败”
Declaring Vec in Rust with 'static lifetime fails
问:
我正在学习 Rust(具有 C++ 背景),并且正在努力声明具有静态生存期的向量。
基本上,我试过了......
let v : 'static Vec<u16> = vec![1, 2, 3];
...但得到lifetime in trait object type must be followed by
+``
我想我的语法不正确,但找不到问题所在。
答:
0赞
user4815162342
11/10/2023
#1
您可能希望使用 lazy_static
crate,并将您的向量声明为:
lazy_static {
ref V: Vec<u16> = vec![1, 2, 3];
}
它既适用于函数内部,也适用于顶层,并且最接近于 C++ 在函数内部。与 C++ 不同,向量是不可变的,因此您可能希望将其包装在 或 .static std::vector<short> v = ...
Mutex
RwLock
评论
'static
Vec<u16>
'static
let mut v : 'static Vec<u16> = Vec::new();
mut
'static
static mut v : Vec<u16> = Vec::new();
'static