本章覆盖有:
“租借,borrowing”和“生命周期,lifetime”的概念
困扰系统软件的租借典型错误是哪些
如何通过租借checker,Rust的严格语法来避免这种典型错误
如何通过插入语句块来约束租借的作用域(scope)
为什么函数返回的引用需要生命周期指示符(specifiers)
如何给函数使用生命周期指示符(lifetime specifiers),它们表示什么
租借checker的任务是什么
本章覆盖有:
为什么决定性的(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
如何定义类型别名
如何定义泛型迭代器
如何使用关联类型来简化泛型迭代器的使用
如何定义字节的迭代器