首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生锈字符串中的“可生长”和“可变”有什么区别?

生锈字符串中的“可生长”和“可变”有什么区别?
EN

Stack Overflow用户
提问于 2019-02-24 19:14:41
回答 1查看 319关注 0票数 3

我在读https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.htmlString作为“可增长的”:

一种UTF-8编码的可生长的字符串。

我有found that growable is not the same as mutable,但他们并没有真正解释是什么使一个类型的“成长”。

考虑到这个let mut guess = String::new()

  1. “增长”是什么意思?
  2. mut如何改变可增长的字符串?
  3. 有不可增长的字符串类型吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-24 19:25:38

这里的措辞你想得太多了;“增长”只意味着它可以成长。最初分配3个字节以包含String"abc"可以增长到6个字节以包含"abcdef"。内存分配可以变得更大(更小)。“增长”一词没有特定的锈蚀类型系统的含义。

更改String的容量是一种特定类型的更改,因此您需要一个可变的String来增长字符串。对于不涉及更改分配的其他类型的更改,您还需要一个可变的String

可变字符串片(&mut str)是一种字符串类型,不能变长或变短,但可以更改。

代码语言:javascript
复制
fn example(name: &mut str) {
    name.make_ascii_uppercase()
}

另请参阅:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54855543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档