Pha*_*wen 7 string reference rust
str为什么我这里不能使用?
let question: &str = "why";
Run Code Online (Sandbox Code Playgroud)
str和 和有什么区别&str?
我明白这&表示引用,但我对什么&str是引用感到困惑。
A是内存中某处的未知长度的strUTF-8 编码字节序列。
由于其大小在编译时未知,因此不能直接将其放入堆栈,而是必须使用引用。
字符串文字(即"why"语法)在二进制文件的数据段中创建一个空格,并返回对该位置的引用,该引用是 an &str(特别是 an &'static str,因为它永远不会被删除)。
如果你写let question: str = "why";,这将不会编译,原因相同:let i: i32 = &123;不会编译。
PS("hello")不是元组,它只是&str括号中的一个。如果要使用单个元素创建元组,请添加尾随逗号:let hello: (&str,) = ("hello",);