RUST

RUST中的self和Self

2019-02-17  本文已影响0人  一代码宗师
impl Clone for MyType {
    // 可以直接写具体类型
    fn clone(&self) -> MyType;
    // 也可以用Self代替
    fn clone(&self) -> Self;
}

impl MySuperLongType {
    // 用Self写起来更短
    fn new(a: u32) -> Self { ... }
}

Rust中函数参数均需要注明类型,但是self则不需要,这是一个语法糖(syntactic sugar),以下示例中两两等价:

impl MyType{
    fn doit(self){}
    fn doit(self: Self){}

    fn doit(&self) {}
    fn doit(self: &Self){}

    fn doit(&mut self) {}
    fn doit(self: &mut Self) {}
}
上一篇 下一篇

猜你喜欢

热点阅读