2 个不稳定版本
使用旧版 Rust 2015
0.2.0 | 2017年9月11日 |
---|---|
0.1.0 | 2017年5月8日 |
425 在 无标准库 中排名
每月下载 51 次
在 3 个包中使用(通过 rdedup-lib)
9KB
106 行
危险选项
关于
此包提供了 DangerousOption - 一种类似于 Swift 语言的 !
类型。它基本上是一个 Option
类型,如果在其包含 None
时进行解引用,则会引发 panic。这在需要稍后初始化事物或通过从受信任库中调用的函数进行访问时很有用。
尽管这种做法可能看起来像是一步退步(这就是为什么 Rust 中没有 NULL 指针的原因),但它仍然有一个比经典 NULL 指针异常方法(包括手动解包)的优点:错误的原因通常不是解引用发生的地方,而是赋值发生的地方。由于此类型只有三种非常独特的方法来创建无效值,因此可以轻松搜索和跟踪这些方法。
此包是 no_std
。
许可证
MITNFA
lib.rs
:
此包提供了 DangerousOption - 一种类似于 Swift 语言的 !
类型。它基本上是一个 Option
类型,如果在其包含 None
时进行解引用,则会引发 panic。这在需要稍后初始化事物或通过从受信任库中调用的函数进行访问时很有用。
尽管这种做法可能看起来像是一步退步(这就是为什么 Rust 中没有 NULL 指针的原因),但它仍然有一个比经典 NULL 指针异常方法(包括手动解包)的优点:错误的原因通常不是解引用发生的地方,而是赋值发生的地方。由于此类型只有三种非常独特的方法来创建无效值,因此可以轻松搜索和跟踪这些方法。
它还有一个故意很长的名称,以防止过度使用。此外,创建危险状态的方法名称比创建有效状态的方法名称更长。
注意:您应该优先选择解引用 DangerousOption 并传递解引用的值,而不是传递 DangerousOption 的引用本身。这样,您将降低出错的机会。
最后,它还提供了一个异常处理器,允许自定义 panic 消息、日志记录等。有一个默认处理器,它只是引发 panic,但在有更具体、已知原因的无效操作的环境中,鼓励覆盖消息。
此包是 no_std
。