美文网首页
Rust学习───trait

Rust学习───trait

作者: 包牙齿 | 来源:发表于2018-03-08 16:09 被阅读41次

什么是trait?如果了解Java语言的话,你就可以把trait理解为Javainterface接口

  • 定义

    pub trait Summarizable 
    {
         fn summary(&self) -> String;
    }
    
    
  • 定义struct

    pub struct NewsArticle 
    {
        pub headline: String,
        pub location: String,
        pub author: String,
        pub content: String
    }
    
    
    
  • 实现trait

    impl Summarizable for NewsArticle 
    {
        fn summary(&self) -> String {
        format!("{}, by {} ({})", self.headline, self.author, self.location)
    }
    
    
  • 调用

    fn main() {
        let article = NewsArticle {
            headline: String::from("headline"),
            location: String::from("location"),
            author: String::from("author"),
            content: String::from("content"),
        };
    
        println!("{}", article.summary());
    }
    
    
    

这里 NewsArticle 的实例就有了Summarizable定义的summary的方法了。
详细关于trait的使用请参考参考链接参考链接

相关文章

  • Rust学习───trait

    什么是trait?如果了解Java语言的话,你就可以把trait理解为Java的interface接口 定义pub...

  • rust Iterator

    Rust Iterator设计: 定义: 对Iterator Trait的理解: Rust的Iterator在大部...

  • Rust学习——trait对象

    一、静态分发:依靠泛型支持,实际上为通过编译期将泛型类型扩展为实际类型,实现单态,最后的结果是代码量的膨胀。 二、...

  • [Rust]Trait

    trait定义了某一个类型所具有的特定行为,跟Java中的抽象类有类似,但有一些区别。trait中可以包含常量,函...

  • Rust Trait

    观感 Rust的Trait和Golang的interface看起来非常相似,从开发者角度来看,都可以实现具体类型的...

  • Rust impl trait

    trait特性 trait特性可以理解为Java中的接口,具备和接口很类似的特性。trait中的函数叫做方法。某个...

  • rust-trait

    什么是trait,trait相对于java就是interface。 基本的trait例子 在trait中,由sel...

  • Rust 闭包学习 (Fn/FnMut/FnOnce)

    学习 Rust 闭包记录 闭包作为参数 闭包作为结构体属性 异步使用闭包 主要就是加 Send trait,没加 ...

  • 【RUST_BASIC】Rust 高级 trait

    1 关联类型 关联类型(associated types)是一个将类型占位符与 trait 相关联的方式,这样 t...

  • 关于rust中trait(二)

    在Rust中默认定义了一些比较常用的trait,主要是为了满足不同的场景下使用。但其中一些trait(Deref/...

网友评论

      本文标题:Rust学习───trait

      本文链接:https://www.haomeiwen.com/subject/vpeyfftx.html