rust stable core 参考导读 | Not

8 阅读1分钟

版本:1.91.0

参考文档:Not in core::ops - Rust


对于一个对象 Foo,为它实现 Not 特质后,!Foo 会被指向 not 方法,返回一个类型为 Output 的数据对象。

use std::ops::Not;

#[derive(Copy, Clone)]
struct Foo;

impl Not for Foo {
    type Output = Foo;

    fn not(self) -> Foo {
        println!("Not-ing!");
        self
    }
}

fn main() {
    let _ = !Foo;
}

这形如绝大多数编程语言中的取反运算,形如 !a

在最早期的版本,也就是 1.0.0,Not 特质只是实现在了若干整数类型以及以它们为泛型的各个 Wrapping<T>。现在的版本对 Not 的实现比之前多得多,但都是针对各种各样的整数类型。