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

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。

相关文章:

  • Python训练营打卡 Day27
  • 青少年编程与数学 02-019 Rust 编程基础 15课题、错误处理
  • 基于Mongodb的分布式文件存储实现
  • 旧 docker 版本通过 nvkind 搭建虚拟多节点 gpu 集群的坑
  • Ubuntu 22.04 上安装 Drupal 10并配置 Nginx, mysql 和 php
  • Spark,SparkSQL操作Mysql, 创建数据库和表
  • uni-app 中适配 App 平台
  • (面试)Android各版本新特性
  • 还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
  • 基于OpenCV的SIFT特征匹配指纹识别
  • 【第76例】IPD流程实战:华为业务流程架构BPA进化的4个阶段
  • 架构与UML4+1视图
  • 如何将数据从一部手机传输到另一部手机 | 5 种便捷传输方式
  • linux 服务器安装jira-8.22.0和confluence-8.5.21
  • 排序算法之高效排序:快速排序,归并排序,堆排序详解
  • nginx Permission denied
  • virtualbox虚拟机中的ubuntu 20.04.6安装新的linux内核5.4.293 | 并增加一个系统调用 | 证书问题如何解决
  • 反向传播算法:神经网络的核心优化方法,一文打通任督二脉
  • Excel MCP: 自动读取、提炼、分析Excel数据并生成可视化图表和分析报告
  • 车道线检测----CLRKDNet
  • 美国贸易政策|特朗普模式:你想做交易吗?
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展
  • 秦洪看盘|指标股发力,A股渐有突破态势
  • 5吨煤炭“瞬间蒸发”?掺水炭致企业损失千万,腐败窝案曝光
  • 北京今日白天超30℃晚间下冰雹,市民称“没见过这么大颗的”
  • 回望乡土:对媒介化社会的反思