Skip to content

Cyrusky/learning_rust_by_examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

The project about learning rust

The basic URL is:

https://rustwiki.org/zh-CN/rust-by-example/hello.html

Table of Contents

    1. Hello World
    • 1.1. 注释

    • 1.2. 格式化输出

      • 1.2.1. 调试(debug)

      • 1.2.2. 显示(display)

      • 1.2.3. 测试实例:List

      • 1.2.4. 格式化

    1. 原生类型
    • 2.1. 字面量和运算符

    • 2.2. 元组

    • 2.3. 数组和切片

    1. 自定义类型
    • 3.1. 结构体

    • 3.2. 枚举

      • 3.2.1. 使用 use

      • 3.2.2. C 风格用法

      • 3.2.3. 测试实例:链表

    • 3.3. 常量

    1. 变量绑定
    • 4.1. 可变变量

    • 4.2. 作用域和遮蔽

    • 4.3. 变量先声明

    • 4.4. 冻结

    1. 类型系统
    • 5.1. 类型转换

    • 5.2. 字面量

    • 5.3. 类型推断

    • 5.4. 别名

    1. 类型转换
    • 6.1. From 和 Into

    • 6.2. TryFrom 和 TryInto

    • 6.3. ToString 和 FromStr

    1. 表达式
    1. 流程控制
    • 8.1. if/else

    • 8.2. loop 循环

      • 8.2.1. 嵌套循环和标签

      • 8.2.2. 从 loop 循环返回

    • 8.3. while 循环

    • 8.4. for 循环和区间

    • 8.5. match 匹配

      • 8.5.1. 解构

        • 8.5.1.1. 元组

        • 8.5.1.2. 枚举

        • 8.5.1.3. 指针和引用

        • 8.5.1.4. 结构体

      • 8.5.2. 卫语句

      • 8.5.3. 绑定

    • 8.6. if let

    • 8.7. while let

    1. 函数
    • 9.1. 方法

    • 9.2. 闭包

      • 9.2.1. 捕获

      • 9.2.2. 作为输入参数

      • 9.2.3. 类型匿名

      • 9.2.4. 输入函数

      • 9.2.5. 作为输出参数

      • 9.2.6. std 中的例子

        • 9.2.6.1. Iterator::any

        • 9.2.6.2. Iterator::find

    • 9.3. 高阶函数

    • 9.4. 发散函数

    1. 模块
    • 10.1. 可见性

    • 10.2. 结构体的可见性

    • 10.3. use 声明

    • 10.4. super 和 self

    • 10.5. 文件分层

    1. crate
    • 11.1. 库

    • 11.2. 使用库

    1. cargo
    • 12.1. 依赖

    • 12.2. 约定规范

    • 12.3. 测试

    • 12.4. 构建脚本

    1. 属性
    • 13.1. 死代码 dead_code

    • 13.2. crate

    • 13.3. cfg

      • 13.3.1. 自定义条件
    1. 泛型
    • 14.1. 函数

    • 14.2. 实现

    • 14.3. trait

    • 14.4. 约束

      • 14.4.1. 测试实例:空约束
    • 14.5. 多重约束

    • 14.6. where 子句

    • 14.7. newtype 惯用法

    • 14.8. 关联项

      • 14.8.1. 存在问题

      • 14.8.2. 关联类型

    • 14.9. 虚类型参数

      • 14.9.1. 测试实例:单位检查
    1. 作用域规则
    • 15.1. RAII

    • 15.2. 所有权和移动

      • 15.2.1. 可变性

      • 15.2.2. 部分移动

    • 15.3. 借用

      • 15.3.1. 可变性

      • 15.3.2. 别名使用

      • 15.3.3. ref 模式

    • 15.4. 生命周期

      • 15.4.1. 显式标注

      • 15.4.2. 函数

      • 15.4.3. 方法

      • 15.4.4. 结构体

      • 15.4.5. trait

      • 15.4.6. 约束

      • 15.4.7. 强制转换

      • 15.4.8. static

      • 15.4.9. 省略

    1. 特质 trait
    • 16.1. 派生

    • 16.2. 使用 dyn 返回 trait

    • 16.3. 运算符重载

    • 16.4. Drop

    • 16.5. Iterator

    • 16.6. impl Trait

    • 16.7. Clone

    • 16.8. 父 trait

    • 16.9. 消除重叠 trait

    1. 使用 macro_rules! 来创建宏
    • 17.1. 语法

      • 17.1.1. 指示符

      • 17.1.2. 重载

      • 17.1.3. 重复

    • 17.2. DRY (不写重复代码)

    • 17.3. DSL (领域专用语言)

    • 17.4. 可变参数接口

    1. 错误处理
    • 18.1. panic

    • 18.2. Option 和 unwrap

      • 18.2.1. 使用 ? 解开 Option

      • 18.2.2. 组合算子:map

      • 18.2.3. 组合算子:and_then

    • 18.3. 结果 Result

      • 18.3.1. Result 的 map

      • 18.3.2. 给 Result 取别名

      • 18.3.3. 提前返回

      • 18.3.4. 引入 ?

    • 18.4. 处理多种错误类型

      • 18.4.1. 从 Option 中取出 Result

      • 18.4.2. 定义一种错误类型

      • 18.4.3. 把错误 “装箱”

      • 18.4.4. ? 的其他用法

      • 18.4.5. 包裹错误

    • 18.5. 遍历 Result

    1. 标准库类型
    • 19.1. 箱子、栈和堆

    • 19.2. 动态数组 vector

    • 19.3. 字符串 String

    • 19.4. 选项 Option

    • 19.5. 结果 Result

      • 19.5.1. ? 用法
    • 19.6. panic!

    • 19.7. 散列表 HashMap

      • 19.7.1. 更改或自定义关键字类型

      • 19.7.2. 散列集 HashSet

    • 19.8. 引用计数 Rc

    • 19.9. 共享引用计数 Arc

    1. 标准库更多介绍
    • 20.1. 线程

      • 20.1.1. 测试实例:map-reduce
    • 20.2. 通道

    • 20.3. 路径

    • 20.4. 文件输入输出(I/O)

      • 20.4.1. 打开文件 open

      • 20.4.2. 创建文件 create

      • 20.4.3. 读取行 read lines

    • 20.5. 子进程

      • 20.5.1. 管道

      • 20.5.2. 等待

    • 20.6. 文件系统操作

    • 20.7. 程序参数

      • 20.7.1. 参数解析
    • 20.8. 外部语言函数接口

    1. 测试
    • 21.1. 单元测试

    • 21.2. 文档测试

    • 21.3. 集成测试

    • 21.4. 开发依赖

    1. 不安全操作
    1. 兼容性
    • 23.1. 原始标志符
    1. 补充
    • 24.1. 文档

    • 24.2. Playpen

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages