Rust惰性静态自定义结构实例



在Rust中,我试图声明一个自定义结构的静态实例。

因为默认情况下,除了const之外,我不能分配其他值,所以我尝试使用lazy_static。

这是我的自定义结构:

pub struct MyStruct { 
field1: String,
field2: String,
field3: u32
}

以下是我尝试实例化它的方式:

lazy_static! {
static ref LATEST_STATE: MyStruct = {
field1: "".to_string(),
field2: "".to_string(),
field3: 0
};
}

此代码编译时没有出现以下错误:

error: expected type, found `""``

我错过了什么?

试试这个:

lazy_static! {
static ref LATEST_STATE: MyStruct = MyStruct {
// ^^^^^^^^
field1: "".to_string(),
field2: "".to_string(),
field3: 0
};
}

Lazy_static初始化与普通Rust相同。let mystruct: MyStruct = { field: "", ... };不会编译。您需要在{}之前输入typename,否则它将被解释为代码块。

尝试用String::from("")实例化而不是"".to_string()

相关内容

  • 没有找到相关文章

最新更新