差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 | |||
| public:lang:rust [2026/05/07 15:12] – 移除 - 外部编辑 (未知日期) 127.0.0.1 | public:lang:rust [2026/05/07 15:12] (当前版本) – ↷ 页面public:it:rust被移动至public:lang:rust oakfire | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== RUST ====== | ||
| + | * 官网:[[http:// | ||
| + | ===== tools ===== | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | ===== Manual ===== | ||
| + | * Book: | ||
| + | * [[http:// | ||
| + | * 编译型语言, | ||
| + | * Cargo: 官方自带类似 nodejs 的 npm 这样的项目管理工具. | ||
| + | ===== 学新语言步骤笔记 ===== | ||
| + | * 了解该语言的出生背景与适用环境: | ||
| + | * 这篇博客介绍很全面: | ||
| + | * Rust是一个由Mozilla主导开发的实验性跨平台编译型编程语言。它的设计准则为“安全,并发,实用”,支持函数式,并发式,过程式以及面向对象的编程风格。适用于系统编程. | ||
| + | * 了解输入输入出流, | ||
| + | * 标准输出: | ||
| + | * 标准输入: | ||
| + | * 文件: '' | ||
| + | * 了解程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制: | ||
| + | * 机制: | ||
| + | * A **crate** contains a tree of nested module scopes... | ||
| + | * 一个源文件对应一个或多个modules.文件本身就是一个module. | ||
| + | * 代码包含: | ||
| + | mod vec;// Load the `vec` module from `vec.rs` | ||
| + | mod thread { | ||
| + | // Load the `local_data` module from `thread/ | ||
| + | // or `thread/ | ||
| + | mod local_data; | ||
| + | } | ||
| + | </ | ||
| + | * items 默认都是私有(除了一点: | ||
| + | * 标准库依赖: | ||
| + | * 外部库: 编译为'' | ||
| + | * '' | ||
| + | * '' | ||
| + | * 可使用官方提供的 Cargo 工具来方便工程依赖. | ||
| + | * 了解该语言的基本数据类型,基本语法和主要语言构造,主要数学运算符和输入输出函数的使用 | ||
| + | * 变量绑定(variable bindings): '' | ||
| + | * 变量绑定支持模板(patten)匹配, | ||
| + | * 基本数据类型: | ||
| + | * 条件: '' | ||
| + | * 循环: '' | ||
| + | * [[https:// | ||
| + | * enum 比较强大, | ||
| + | * **char** 类型为32位无符号Unicode, | ||
| + | * **str** 类型为8位无符号array, | ||
| + | * 支持 **type** 自定义类型 | ||
| + | * 了解数组和其他集合类的使用: | ||
| + | * Array: [[https:// | ||
| + | * Slice FIXME | ||
| + | * Tuple FIXME | ||
| + | * 了解字符串的处理 | ||
| + | * 不同于老的语言, | ||
| + | * String(默认utf8编码); | ||
| + | * 由于是utf8编码, | ||
| + | let hachiko = " | ||
| + | for b in hachiko.as_bytes() { | ||
| + | print!(" | ||
| + | } | ||
| + | println!("" | ||
| + | for c in hachiko.chars() { | ||
| + | print!(" | ||
| + | } | ||
| + | println!("" | ||
| + | |||
| + | // This prints: | ||
| + | // 229, 191, 160, 231, 138, 172, 227, 131, 143, 227, 131, 129, 229, 133, 172, | ||
| + | // 忠, 犬, ハ, チ, 公, | ||
| + | </ | ||
| + | * 由于是utf8编码, | ||
| + | * 了解该语言在面向对象, | ||
| + | * 并发: | ||
| + | * OO: '' | ||
| + | * OO: '' | ||
| + | * 暂时没有继承 | ||
| + | * 支持匿名函数, | ||
| + | * 函数作为一种类型, | ||
| + | * 支持泛型(Generics): | ||
| + | * 支持接口 '' | ||
| + | * 了解特有的语法糖 | ||
| + | * [[http:// | ||
| + | * 了解该语言错误处理, | ||
| + | * 没有 exception. [[https:// | ||
| + | * 方法调用可返回 [[https:// | ||
| + | * Result 可有'' | ||
| + | * 调试方式: | ||
| + | * 测试支持: | ||
| + | * 了解该语言的内存分配机制或GC, | ||
| + | * 8-)不需要手动释放内存, | ||
| + | * [[https:// | ||
| + | * 引用(reference, | ||
| + | * 生存期(lifetimes), | ||
| + | * 了解该语言的编译/ | ||
| + | |||
| + | ===== Others ===== | ||
| + | * 注释:< | ||
| + | // 两斜线为普通注释; | ||
| + | |||
| + | /// 三斜线支持markdown格式, | ||
| + | /// 三个斜线的注释可被 cargo doc 生成文档 | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||