我在读https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html。String作为“可增长的”:
一种UTF-8编码的可生长的字符串。
我有found that growable is not the same as mutable,但他们并没有真正解释是什么使一个类型的“成长”。
考虑到这个let mut guess = String::new(),
mut如何改变可增长的字符串?发布于 2019-02-24 19:25:38
这里的措辞你想得太多了;“增长”只意味着它可以成长。最初分配3个字节以包含String的"abc"可以增长到6个字节以包含"abcdef"。内存分配可以变得更大(更小)。“增长”一词没有特定的锈蚀类型系统的含义。
更改String的容量是一种特定类型的更改,因此您需要一个可变的String来增长字符串。对于不涉及更改分配的其他类型的更改,您还需要一个可变的String。
可变字符串片(&mut str)是一种字符串类型,不能变长或变短,但可以更改。
fn example(name: &mut str) {
name.make_ascii_uppercase()
}另请参阅:
https://stackoverflow.com/questions/54855543
复制相似问题