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

Fus*_*ion 4 string variable-declaration rust

我刚刚阅读了有关字符串数据类型的Rust文档,其中指出:

Rust &str虽然不止这么做.A String是堆分配的字符串.此字符串是可增长的,并且也保证为UTF-8.

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

let mystring : &str = "Hello"; // this works
let mystring : String = "Hello"; // this does not. Why?
Run Code Online (Sandbox Code Playgroud)

Sim*_*ead 9

因为a &str不是String.

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

let mystring = String::from("Hello");
// ..or..
let mystring: String = "Hello".into();
// ..or..
let mystring: String = "Hello".to_string();
Run Code Online (Sandbox Code Playgroud)


lje*_*drz 5

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

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