欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Rust 学习笔记:关于 String 的练习题

Rust 学习笔记:关于 String 的练习题

2025/7/1 10:43:41 来源:https://blog.csdn.net/ProgramNovice/article/details/148008571  浏览:    关键词:Rust 学习笔记:关于 String 的练习题

Rust 学习笔记:关于 String 的练习题

  • Rust 学习笔记:关于 String 的练习题
    • 选出描述正确的那一个。
    • 该程序最多可能发生多少次堆的内存分配?
    • 哪种说法最能解释为什么 Rust 不允许字符串索引?
    • 哪种说法最能描述字符串切片 &str 和字节切片 &[u8] 类型之间的差异?

Rust 学习笔记:关于 String 的练习题

参考视频:

  1. https://www.bilibili.com/video/BV1Au6PYREqi

选出描述正确的那一个。

使用 a+b 和 a.push_str(b) 有什么区别?

A. a+b 和 a.push_str(b) 是相同函数的别名,它们的功能相同。
B. + 操作符会消耗 a 的所有权,而 push_str 不会。
C. push_str 会消耗 b 的所有权,而 + 操作符不会。
D. push_str 在运行时比 + 操作符更高效。

答:B。

该程序最多可能发生多少次堆的内存分配?

fn main() {let s1 = String::from("1");let s2 =  String::from("2");let s3 = String::from("3");let s = s1 + "-" + &s2 + "-" + &s3;
}

答:7 次。

s1、s2、s3、s1+“-”、s1+“-”+&s2、s1+“-”+&s2+“-”、s1+“-”+&s2+“-”+&s3。

哪种说法最能解释为什么 Rust 不允许字符串索引?

A. 字符串索引是不明确的,因为字符串表示多个粒度的顺序数据。
B. 字符串索引效率低下,因为字符串以空值结尾,因此它们的长度无法高效计算。
C. 字符串索引不安全,因为它可能导致段错误或缓冲区溢出。

答:A。

哪种说法最能描述字符串切片 &str 和字节切片 &[u8] 类型之间的差异?

A. &str 可以从 String 构建,而 &[u8] 只能从 Vec 构建。
B. &str 指向的字节总是可以解释为 UTF-8,而 &[u8] 可以是任何字节序列。
C. &str 不能进一步切片,而 &[u8] 可以再次切片。
D. &str 总是指向存储在程序二进制文件中的数据,而 &[u8] 可以存储在内存中的任何地方。

答:B。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词