关于rust杂碎记录
Rust 程序设计语言的本质在于 赋能(empowerment):无论你现在编写的是何种代码,Rust 能让你在更为广泛的编程领域走得更远,写出自信
Rust 最重要的目标是消除数十年来程序员不得不做的权衡:安全 与 生产力,速度 与 人机交互的顺畅度(ergonomics)
rust的源文件的扩展名为 .rs ,对rs文件可用编译器rustc
编译生成二进制代码。
Rust 是一种 预编译静态类型
Cargo 是 Rust 的构建系统和包管理器,它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。(我们把代码所需要的库叫做 依赖(dependencies))。
Cargo:
cargo new project
cargo build
cargo run
cargo check
cargo build --release
cargo update
cargo doc --open //构建所有本地依赖提供的文档
let定义并绑定变量
use使用外部crate
::new
那一行的 ::
语法表明 new
是 String
类型的一个 关联函数(associated function)。关联函数是针对类型实现的,在这个例子中是 String
,而不是 String
的某个特定实例。一些语言中把它称为 静态方法(static method)。
Result
类型是 枚举(enumerations),通常也写作 enums。枚举类型持有固定集合的值,这些值被称为枚举的 成员(variants)。
Result
的成员是 Ok
和 Err
,Ok
成员表示操作成功,内部包含成功时产生的值。Err
成员则意味着操作失败,并且包含失败的前因后果。
Cargo 理解语义化版本(Semantic Versioning)(有时也称为 SemVer),这是一种定义版本号的标准。0.5.5
事实上是 ^0.5.5
的简写,它表示 “任何与 0.5.5 版本公有 API 相兼容的版本”。
一个 match
表达式由 分支(arms) 构成。一个分支包含一个 模式(pattern)和表达式开头的值与分支模式相匹配时应该执行的代码。
Rust 允许用一个新值来 隐藏 (shadow) guess
之前的值。
使用大型数据结构时,适当地使用可变变量,可能比复制和返回新分配的实例更快。对于较小的数据结构,总是创建新实例,采用更偏向函数式的编程风格,可能会使代码更易理解,为可读性而牺牲性能或许是值得的。Err(_)
模式:_
是一个通配符值,本例中用来匹配所有 Err
值,不管其中有何种信息。