2016-12-19 35 views
0

我想在我的結構來聲明HashMap成員,並作爲密鑰將始終是一個靜態的文字和內容將被修改,所以我期望的類型是:如何在Rust中聲明一個類型爲<&str,String>的散列表?

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>, 
} 

氏s解決方案的作品,但並不完美。任何人都可以解釋我在這裏做錯了什麼嗎?

回答

4

你需要指定的按鍵的壽命'static

pub struct SmpStruct { 
    word_dict: HashMap<&'static str, String>, 
} 

在結構領域或枚舉變量,lifetime parameters不能省略;它們必須明確指定,並且如果要接受除'static以外的生存期,則必須在結構或枚舉本身上添加生命週期參數。

相關問題