当前位置: 首页 > backend >正文

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。

http://www.xdnf.cn/news/6578.html

相关文章:

  • python中集合的操作
  • MySQL 与 FastAPI 交互教程
  • 在 Ubuntu 系统中,将 JAR 包安装为服务
  • LongRefiner:解决长文档检索增强生成的新思路
  • Redis + ABP vNext 构建分布式高可用缓存架构
  • IntelliJ IDEA克隆项目失败的解决方法
  • Tomcat发布websocket
  • 笔试强训:Day5
  • FPGA: UltraScale+ bitslip实现(方案+代码)
  • 【递归、搜索和回溯】穷举vs暴搜vs深搜vs回溯vs剪枝
  • 【向量模型 + HNSW 参数如何选择】
  • 用栈实现+-*/计算器
  • GPU八卡A100使用INT4-W4A16量化大模型实验
  • Manus AI 原理深度解析第三篇:Tools
  • 什么是DHCP?
  • JavaScript零基础入门笔记:狂神版
  • C# Try Catch Finally 执行顺序是什么?有返回值呢?
  • Openlayers:如何注册一个新的坐标系统
  • web第二次课后作业--设计一个注册登录系统
  • MyBatis:从入门到深度理解
  • 从入门到实战:时序图核心知识与高效绘制全解析(附模板)
  • 如何利用芯片模型提升终端PCB的SIPI热仿真精度
  • 如何让open-mpi在不同版本的OS上运行
  • shell常用语法
  • 晶振的核心参数
  • 会计要素+借贷分录+会计科目+账户,几个银行会计的重要概念
  • 从 Vue3 回望 Vue2:组件设计升级——Options API vs Composition API
  • OpenResty Manager 介绍与部署(Docker部署)
  • C++算法(22):二维数组参数传递,从内存模型到高效实践
  • ERP知识手册【第三弹:INV(库存管理)】