微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rust懒惰的静态自定义结构实例

如何解决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: "",... };无法编译。您需要在{}之前输入类型名称,否则将其解释为代码块。

,

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。