rust基础入门[21] - Drops, Moves, and Copies

本章覆盖有:

  • 为什么决定性的(deterministic)、隐式(implicit)的对象销毁是Rust的一大亮点
  • 对象所有者(ownership)的概念
  • 为什么自定义销毁可能有用,怎么创建
  • 三种赋值语义:共享(share)、拷贝(copy)、移动(move)
  • 为什么隐式共享对软件正确性是糟糕的
  • 为什么对象的移动(move semantics)比起拷贝(copy semantics)可能有更好的性能
  • 为什么某些类型需要拷贝(copy semantics),某些不需要,怎么区分
  • 为什么某些类型需要是不可复制的(non-cloneable),怎么区分
Read more

rust基础入门[20] - Standard Library Collections

本章覆盖有:

  • 如何度量运行部分代码所花费的时间
  • 基于性能因素,如何使用哪种类型的集合
  • 集合中的各种操作中哪个更好:顺序扫描(sequential scan)、两端插入和删除(insertion and removal of items at both ends)、删除最大项(removal of the largest item)、搜索(search)、键搜索(search by key)、保持顺序(keeping items sorted)
Read more

rust基础入门[19] - Object-Oriented Programming

本章覆盖有:

  • 不使用trait,继承方式实现关联类型的函数
  • Rust面向对象和C++面向对象的区别
  • 那些trait可以实现哪些type,哪些不能
  • 如何指定一个方法更改对象
  • 构造对象的一些约定方法
  • 为什么Rust不适用数据继承
  • 什么是静态派遣,什么是动态派遣,如何实现,如何使用
Read more

rust基础入门[18] - Using Traits

本章覆盖有:

  • traits如何避免在泛型函数调用中的不能理解的编译错误信息
  • 泛型参数的边界如何被单子化(monolithic),或如何分解为几个traits
  • 如何创建函数体返回内的traits
  • 如何简单地使用self关键字,通过"点,dot notation"操作来创建函数
  • 如何迭代一个trait
  • 如何定义类型别名
  • 如何定义泛型迭代器
  • 如何使用关联类型来简化泛型迭代器的使用
  • 如何定义字节的迭代器
Read more

rust基础入门[17] - IO and Error Handling

本章覆盖有:

  • 如何通过命令行参数启动程序
  • 如何给操作系统返回一个状态码
  • 如何获取和设置进程环境变量
  • 如何处理运行时错误
  • 如何在控制台读取键盘输入信息并打印输出
  • 原生类型如何转换为字符串
  • 如何读写二进制文件
  • 如何按行读取文本文件
Read more