Art*_*hur 7 reference literals rust
关于Rust编程语言的 切片的第4.3节有这一段:
字符串文字是切片
回想一下,我们谈到了存储在二进制文件中的字符串文字.现在我们了解了切片,我们可以正确理解字符串文字:
Run Code Online (Sandbox Code Playgroud)let s = "Hello, world!";
s这里的类型是&str:它是指向二进制特定点的切片.这也是字符串文字不可变的原因;&str是一个不可变的引用.
现在,正如他们之前所述,一个字符串切片包含一个指针和一个长度的一对(某种形式).对我来说,这段(特别是"我们谈到存储在二进制文件中的字符串文字"和"指向二进制文件的特定点")似乎暗示该指针直接进入程序存储器.不是堆栈,不是堆,而是处理器存储程序所包含的所有指令的实际位置.如果你愿意,可以使用特定的装配线.
这是真的?如果没有,那么他们还能说什么呢?它是如何实际完成的?如果我后来有一个类似的问题,我怎么能自己解决这个问题呢?
这是真的 - &'static str字符串文字嵌入在二进制文件本身中.它并不是Rust特有的,例如C实现经常做同样的事情.
引用Rust Reference(强调我的):
字符串文字是直接存储在最终二进制文件中的字符串,因此在
'static持续时间内有效.它的类型是
'static持续时间借用的字符串切片,&'static str.
有专门设计用于找到这种字符串的程序,例如字符串或只是grep --text.
相关问题:字符串文字:它们去哪里了?.