Rust 程式設計視訊教程(進階)——025_5 實現不安全的 trait

linghuyichong發表於2020-02-17

頭條地址:https://www.ixigua.com/i677586170644791348...
B站地址:https://www.bilibili.com/video/av81202308/

github地址:https://github.com/anonymousGiga/learn_rus...

(1)當至少有一個方法中包含編譯器不能驗證的不變數時,該 trait 是不安全的;
(2)在 trait 之前增加 unsafe 關鍵字將 trait 宣告為 unsafe,同時 trait 的實現也必須標記為 unsafe。
例子:

struct Bar();
unsafe trait Foo {
    fn foo(&self);
}
unsafe impl Foo for Bar{
    fn foo(&self) {
        println!("foo");
    }
}
fn main() {
    let a: Bar = Bar();
    a.foo();
    println!("Hello, world!");
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結

令狐一衝

相關文章