rust-course
rust-course copied to clipboard
'7.3. String、&str 和 str' 内容有误导
str类型是硬编码进可执行文件,也无法被修改
这一句是比较显然的错误。作者希望表述的应该是字符串字面量,如 "abc" 这样直接包含在源代码中的字符串,其类型为 &'static str。(注意,这并不意味着有 'static 生命周期的 str 就不可变了,仍然有办法构造出具有 'static 生命周期的 &mut str)
然而 str 类型本身是可以修改的,可以试着用 Box<str> 调用 make_ascii_uppercase() 验证。
正如 String 只是 Vec<u8> 的包装,str 也基本上只是 [u8] 的一个子集,[u8] 可变,str 自然也可变,只是依旧要遵循 utf8 编码罢了。
谢谢提醒,我看一下哈。