我想HashMap
在我的结构中声明一个成员,由于键将始终是静态文字,并且内容将被修改,所以我期望的类型是:
pub struct SmpStruct {
word_dict: HashMap<&str, String>,
}
不幸的是,编译器给了我反馈:
error[E0106]: missing lifetime specifier
--> src/main.rs:4:24
|
4 | word_dict: HashMap<&str, String>,
| ^ expected lifetime parameter
作为替代,我正在使用HashMap<String, String>
:
pub struct SmpStruct {
word_dict: HashMap<String, String>,
}
此解决方案有效,但并不完美。有人可以在这里解释我做错了什么吗?
您需要指定密钥的生存期为'static
:
pub struct SmpStruct {
word_dict: HashMap<&'static str, String>,
}
在struct字段或enum变体中,生存期参数不能省略。必须明确指定它们,如果要接受除以外的生存期'static
,则必须在struct或枚举本身上添加一个生命周期参数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句