Rust編程進階:067、實現不安全的trait

例子:

// 7、實現不安全的trait
// (1)當至少有一個方法中包含編譯器不能驗證的不變量時,該trait就是不安全的。
// (2)在trait之前增加unsafe聲明其爲不安全的,同時trait的實現也必須用unsafe標記。
unsafe trait Foo {
    fn foo(&self);
}

struct Bar();

unsafe impl Foo for Bar {
    fn foo(&self) {
        println!("foo");
    }
}

fn main() {
    let a = Bar();
    a.foo();
    println!("Hello, world!");
}

https://github.com/anonymousGiga/learn_rust/blob/master/learn_unsafe6/src/main.rs
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章