From 21fedf5352d0866fdfc4890296afd8a1eb2b989d Mon Sep 17 00:00:00 2001 From: 3119369616 <38552079+3119369616@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:19:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/basic/compound-type/string-slice.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/basic/compound-type/string-slice.md b/src/basic/compound-type/string-slice.md index e7a4e563..42ee90d6 100644 --- a/src/basic/compound-type/string-slice.md +++ b/src/basic/compound-type/string-slice.md @@ -394,7 +394,7 @@ string_replace_range = "I like Rust!" #### 删除 (Delete) -与字符串删除相关的方法有 4 个,他们分别是 `pop()`,`remove()`,`truncate()`,`clear()`。这四个方法仅适用于 `String` 类型。 +与字符串删除相关的方法有 4 个,它们分别是 `pop()`,`remove()`,`truncate()`,`clear()`。这四个方法仅适用于 `String` 类型。 1、 `pop` —— 删除并返回字符串的最后一个字符 @@ -683,7 +683,7 @@ for b in "中国人".bytes() { 那么问题来了,为啥 `String` 可变,而字符串字面值 `str` 却不可以? -就字符串字面值来说,我们在编译时就知道其内容,最终字面值文本被直接硬编码进可执行文件中,这使得字符串字面值快速且高效,这主要得益于字符串字面值的不可变性。不幸的是,我们不能为了获得这种性能,而把每一个在编译时大小未知的文本都放进内存中(你也做不到!),因为有的字符串是在程序运行得过程中动态生成的。 +就字符串字面值来说,我们在编译时就知道其内容,最终字面值文本被直接硬编码进可执行文件中,这使得字符串字面值快速且高效,这主要得益于字符串字面值的不可变性。不幸的是,我们不能为了获得这种性能,而把每一个在编译时大小未知的文本都放进内存中(你也做不到!),因为有的字符串是在程序运行的过程中动态生成的。 对于 `String` 类型,为了支持一个可变、可增长的文本片段,需要在堆上分配一块在编译时未知大小的内存来存放内容,这些都是在程序运行时完成的: