本章覆盖有:
为什么决定性的(deterministic)、隐式(implicit)的对象销毁是Rust的一大亮点
对象所有者(ownership)的概念
为什么自定义销毁可能有用,怎么创建
三种赋值语义:共享(share)、拷贝(copy)、移动(move)
为什么隐式共享对软件正确性是糟糕的
为什么对象的移动(move semantics)比起拷贝(copy semantics)可能有更好的性能
为什么某些类型需要拷贝(copy semantics),某些不需要,怎么区分
为什么某些类型需要是不可复制的(non-cloneable),怎么区分
本章覆盖有:
如何度量运行部分代码所花费的时间
基于性能因素,如何使用哪种类型的集合
集合中的各种操作中哪个更好:顺序扫描(sequential scan)、两端插入和删除(insertion and removal of items at both ends)、删除最大项(removal of the largest item)、搜索(search)、键搜索(search by key)、保持顺序(keeping items sorted)
本章覆盖有:
不使用trait,继承方式实现关联类型的函数
Rust面向对象和C++面向对象的区别
那些trait可以实现哪些type,哪些不能
如何指定一个方法更改对象
构造对象的一些约定方法
为什么Rust不适用数据继承
什么是静态派遣,什么是动态派遣,如何实现,如何使用
本章覆盖有:
traits
如何避免在泛型函数调用中的不能理解的编译错误信息
泛型参数的边界如何被单子化(monolithic),或如何分解为几个traits
如何创建函数体返回内的traits
如何简单地使用self
关键字,通过"点,dot notation"操作来创建函数
如何迭代一个trait
如何定义类型别名
如何定义泛型迭代器
如何使用关联类型来简化泛型迭代器的使用
如何定义字节的迭代器
本章覆盖有:
如何通过命令行参数启动程序
如何给操作系统返回一个状态码
如何获取和设置进程环境变量
如何处理运行时错误
如何在控制台读取键盘输入信息并打印输出
原生类型如何转换为字符串
如何读写二进制文件
如何按行读取文本文件