Rust 其他特性介绍
Rust 其他特性介绍
- 不安全 Rust
- 使用 newtype 模式实现类型安全和抽象,newtype 作用:
- 用来静态的保证各种值之间不会混淆并表明值的单位
- 为类型的某些细节提供抽象能力
- 通过轻量级的封装来隐藏内部实现细节
- 类型别名:为现有类型生产另外的名称,使用 type 关键字,减少代码字符重复
- 示例:
type abc = i32; let x: abc = 5;
!类型(empty type)
也称为 never 类型,它在不返回的函数中充当返回类型- 不返回值的函数也称为
发散函数(diverging function)
动态大小的类型(Dynamically Sized Types, DST)
:编译代码时使用只有在运行时才能确定大小的值,动态大小的类型:Sized trait
为处理动态大小的类型,编译时可计算出大小的类型会自动实现该 traitSized ?trait
解除大小
函数指针
可以将函数传递给其他的函数,函数在传递过程中会被强制转换为 fn
类型,即函数指针(function pointer)
- fn 是一个类型,不是 trait
- 函数指针实现了全部3种闭包trait(Fn、FnMut、FnOnce)
fn add(x: i32) -> i32 {
x + 1
}
fn do_twice(f: fn(i32) -> i32, arg: i32) -> i32 {
f(arg) + f(arg)
}
fn main() {
let a = do_twice(add, 1); // 4
}