【发布时间】:2021-03-20 14:29:56
【问题描述】:
我目前正在学习来自 JavaScript 的 Rust。
我的问题如下:
fn main() {
let name = String::from("Tom");
let sliced = name[..2];
println!("{}, {}", name, sliced);
}
这不起作用。说"doesn't have a size known at compile-time"。
要解决这个问题,我需要添加 & 引用运算符。
fn main() {
let name = String::from("Tom");
let sliced = &name[..2];
println!("{}, {}", name, sliced);
}
我知道我需要在名称前添加&,& 是引用运算符。但我就是不知道为什么我真的需要这样做?
通过引用一个变量,该引用引用了变量name,但并不拥有它。如果我的参考超出范围,原始值将不会被删除。这是否意味着如果我执行name[...] 并且变量被删除并且我需要创建对它的引用以防止这种情况发生,那么变量会超出范围?
谁能解释一下?
【问题讨论】:
-
@mkrieger1 第二个作品。我只想知道
&到底做了什么让我的代码工作