|
|
|
@ -224,7 +224,7 @@ fn main() {
|
|
|
|
|
|
|
|
|
|
这段代码,大家觉得会否报错?如果参考之前的 `String` 所有权转移的例子,那这段代码也应该报错才是,但是实际上呢?
|
|
|
|
|
|
|
|
|
|
这段代码和之前的 `String` 有一个本质上的区别:在 `String` 的例子中 `s1` 持有了通过`String::from("hello")` 创建的值的所有权,而这个例子中,`x` 只是引用了存储在二进制中的字符串 `"hello, world"`,并没有持有所有权。
|
|
|
|
|
这段代码和之前的 `String` 有一个本质上的区别:在 `String` 的例子中 `s1` 持有了通过`String::from("hello")` 创建的值的所有权,而这个例子中,`x` 只是引用了存储在二进制可执行文件( binary )中的字符串 `"hello, world"`,并没有持有所有权。
|
|
|
|
|
|
|
|
|
|
因此 `let y = x` 中,仅仅是对该引用进行了拷贝,此时 `y` 和 `x` 都引用了同一个字符串。**如果还不理解也没关系,当学习了下一章节 "引用与借用" 后,大家自然而言就会理解。**
|
|
|
|
|
|
|
|
|
|