我正在阅读 Rust 书籍以学习 Rust,目前正在学习所有权。它提到:
“我们已经见过字符串字面量了,在其中字符串值是硬编码到我们的程序中的。字符串字面量很方便,但并不适用于我们可能想要使用文本的每种情况。一个原因是它们是不可变的。”
下面的代码可以正常运行,我改变了
“我们已经见过字符串字面量了,在其中字符串值是硬编码到我们的程序中的。字符串字面量很方便,但并不适用于我们可能想要使用文本的每种情况。一个原因是它们是不可变的。”
下面的代码可以正常运行,我改变了
a
的值,如果不可变字符串可以被更改,那么问题在哪里?fn main() {
let mut a = "Hello";
println!("{}", a);
a = " World";
println!("{}", a);
}
a
是一个对不可变切片进行可变绑定。你可以改变它绑定的不可变切片(就像你所做的那样),但你仍然无法修改这些切片本身。 - eggyala.make_ascii_uppercase()
将会失败。 - eggyal