pub: 表示struct字段, impl块和模块的公共可见性。
pub mod xxx 与 pub use xxx
pub mod xxx ;相当于把xxx复制到这个pub mod语句处,再冠以pub (这个比较好理解)
pub use yyy 相当于java的import(即use本来的意义) ,或者说 建立快捷方式链接
函数
函数在 Rust 语言中是普遍存在的。
通过之前的章节已经可以了解到 Rust 函数的基本形式:
fn <函数名> ( <参数> ) <函数体>
https://www.runoob.com/rust/rust-function.html
特性(trait)
特性(trait)概念接近于 Java 中的接口(Interface),但两者不完全相同。特性与接口相同的地方在于它们都是一种行为规范,可以用于标识哪些类有哪些方法。
特性在 Rust 中用 trait 表示:
trait Descriptive {
fn describe(&self) -> String;
}
这里声明了一个叫做Descriptive的特性,特性 Descriptive 规定了实现者必须是有 describe(&self) -> String
方法的。
我们用它实现一个结构体:
struct Person {
name: String,
age: u8
}
impl Descriptive for Person {
fn describe(&self) -> String {
format!("{} {}", self.name, self.age)
}
}
格式是:impl <特性名> for <所实现的类型名>
Rust 同一个类可以实现多个特性,每个 impl 块只能实现一个。
https://www.runoob.com/rust/rust-generics.html
Rust 中的关键字(Keywords)
as: 基本类型变换, 消除某个项中包含的特定trait的歧义性, 或者是重命名use和extern crate中所用到的项.
break: 立刻退出一个循环.
const: 常量项以及常量原始指针.
continue: 继续下一个循环迭代.
crate: 连接外部crate, 或者是一个宏变量以表示宏定义所处于的crate.
else: if 和 if let 控制流结构的回退.
enum: 定义枚举体.
extern: 外部crate, 函数, 以及可变链接.
false: 布尔false.
fn: 函数定义和函数指针类型.
for: 迭代循环; trait impl 语法的一部分; 更高级的生命周期语法.
if: 条件分支.
impl: 本能和trait实现块.
in: for 循环结构的一部分.
let: 变量绑定.
loop: 无条件的无限循环.
match: 模式匹配.
mod: 模块声明.
move: 使得一个闭包获得它的所有捕获项的所有权.
mut: 表示索引中的可变性, 原始指针和模式绑定.
pub: 表示struct字段, impl块和模块的公共可见性.
ref: 索引绑定.
return: 从函数返回.
Self: 某类型在实现一个trait时的类型别名.
self: 方法标题或当前模块.
static: 全局变量或者生命周期为整个程序执行时间.
struct: 结构体定义.
super: 当前模块的父模块.
trait: 特性定义.
true: 布尔true.
type: 类型别名; 关联类型定义.
unsafe: 表示不安全的代码, 功能, 特征和实现.
use: 将符号导入作用域.
where: type约束条件.
while: 条件循环.
union: (1.19新增)联合体声明, 与struct不同的是其中所有fields共用存储空间.