声明`String`类型的变量不起作用

时间:2016-09-11 07:44:51

标签: string rust variable-declaration

我刚看了the Rust documentation about string data types,其中说明了:

  

Rust虽然只有&str个。 String是堆分配的   串。此字符串是可增长的,并且也保证为UTF-8。

麻烦:我想显式声明变量类型,如下所示:

let mystring : &str = "Hello"; // this works
let mystring : String = "Hello"; // this does not. Why?

2 个答案:

答案 0 :(得分:8)

因为&str不是String

有几种方法可以使字符串文字成为String实例:

let mystring = String::from("Hello");
// ..or..
let mystring: String = "Hello".into();
// ..or..
let mystring: String = "Hello".to_string();

答案 1 :(得分:5)

这是因为第二个mystring不是String,而是&'static str,即静态分配的字符串文字。

为了以这种方式创建String(来自文字),您需要撰写let mystring = String::from("Hello")Rust docs)。