Rust字符串中的“growable”和“mutable”的区别是什么?

4

1
这让我想起了另一个关于str和它们大小的最近问题。 - E net4
1个回答

6
你在这里过度思考词汇了;“growable”只是意味着它可以增长。一个最初分配3个字节来包含"abc"String可以增长到6个字节来包含"abcdef"。内存分配可以变得更大(和更小)。单词“growable”没有特定的Rust类型系统含义。
改变String的容量是一种具体的修改类型,因此您需要一个可变的String才能使字符串增长。对于不涉及更改分配的其他类型的修改,您还需要一个可变的String
可变字符串切片(&mut str)是一种不能变得更长或更短但可能会被更改的字符串类型。
fn example(name: &mut str) {
    name.make_ascii_uppercase()
}

参见:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接