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

Rust lazy static custom struct instance

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

因为默认情况下我无法分配除常量之外的其他值,我正在尝试使用 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: "", ... }; 无法编译。您需要在 {} 之前输入类型名称,否则它会被解释为代码块。

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