Rust 其他特性介绍

发布时间: 更新时间: 总字数:449 阅读时间:1m 作者: IP上海 分享 网址

Rust 其他特性介绍

Rust 其他特性介绍

  • 不安全 Rust
  • 使用 newtype 模式实现类型安全和抽象,newtype 作用:
    • 用来静态的保证各种值之间不会混淆并表明值的单位
    • 为类型的某些细节提供抽象能力
    • 通过轻量级的封装来隐藏内部实现细节
  • 类型别名:为现有类型生产另外的名称,使用 type 关键字,减少代码字符重复
    • 示例:type abc = i32; let x: abc = 5;
  • !类型(empty type) 也称为 never 类型,它在不返回的函数中充当返回类型
    • 不返回值的函数也称为 发散函数(diverging function)
  • 动态大小的类型(Dynamically Sized Types, DST):编译代码时使用只有在运行时才能确定大小的值,动态大小的类型:
    • str
    • trait
  • Sized trait 为处理动态大小的类型,编译时可计算出大小的类型会自动实现该 trait
  • Sized ?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
}
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数