关联类型:是trait中的占位符。在内部约定一个特别的类型,和泛型似类(泛型是外部约定)
泛型参数:是指参数中,实现trait的对象类型是一个泛型类;即不特定的一类
默认参数:是指参数中,有实现trait的对象类型就是某一个特殊的类;即特定的一类

上代码:

#[derive(Debug)]
pub enum RunStrategy{AAAA,BBBB,CCCC,
}pub trait Strategy< T= Vec<String>> {type N;type M;fn poll(&self) -> Self::N;fn run(&self, a:&Self::N, b:&Self::M) -> bool;
}#[derive(Debug)]
pub struct Strategy_aaaa{code :String,
}
impl Strategy_aaaa{pub fn default()-> Self{Strategy_aaaa{ code:"600036".to_string()}}
}
impl Strategy for Strategy_aaaa{type N = Vec<String>;type M = RunStrategy;fn poll(&self) -> Self::N{vec!["600036".to_string(),"600016".to_string()]}fn run(&self,name: &Vec<String>,stra:&RunStrategy)->bool{println!("name :{:?} is running!",name);println!("strategy :{:?}",stra);true}
}fn main(){println!("hello!");let aaaa = Strategy_aaaa::default();let ty   = RunStrategy::AAAA;println!("poll=>{:?}",aaaa.poll());println!("run =>{:?}",aaaa.run(&vec!["600036".to_string()],&ty));}

Rust:trait中 关联类型、泛型参数、默认参数混用相关推荐

  1. 【TS】函数重载--可选参数--默认参数

    可选参数–默认参数 在ts中定义的数据类型,某些情况下只需要传入定义数据类型的一部分参数,比如:id .name.age.address,此时需要修改用户的名称,那么只需要传入id.name就够了:某 ...

  2. 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )

    文章目录 一. Dart 面向对象 二. 类定义 三. 类的继承 四. 私有变量 五. 可选参数与默认参数 六. 初始化列表 七. 完整代码示例 八. 相关资源 一. Dart 面向对象 OOP 基本 ...

  3. python参数默认值实例_Python中使用partial改变方法默认参数实例

    #!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #partial.py #authror: orangleliu ''' funct ...

  4. [转载] Java中方法不可以有默认参数

    参考链接: Java中的方法 Java中的方法不可以有默认参数,只能通过重载来实现: public class ParameterDefault { /** * @param args */ publ ...

  5. JavaScript函数中的arguments(js函数中的arguments,函数默认参数arguments)

    简述:js中的函数大家都比较熟悉,今天来分享下函数中的默认参数arguments.js的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类型,即使你在定义函数时,只设置了两个 ...

  6. python函数可以按照参数名称方式传递参数_python函数传入参数(默认参数、可变长度参数、关键字参数)...

    1.python中默认缺省参数----定义默认参数要牢记一点:默认参数必须指向不变对象! 1 def foo(a,b=1):2 printa,b3 4 foo(2) #2 1 5 foo(3,100) ...

  7. PYTHON 笔记:函数的参数(关键字参数,默认参数,可变长参数,可变长的关键字参数)

    一般的函数参数是位置参数,位置不对会出问题 1.关键字参数 使用参数名提供的参数就是关键字参数,有了关键字参数,顺序就不会有影响. >>>def printGrade(name,ID ...

  8. 五 、Kotlin学习之命名参数默认参数

    一.命名参数 fun isSquare(width: Int, height: Int): Boolean {return width == height }isSquare(20, 30) isSq ...

  9. Hibernate 中Datetime类型属性数据库默认值

    为什么80%的码农都做不了架构师?>>>    在有些时间,我们在设置Hibernate 的配置文件时希望POCO类的一个属性使用数据库中的默认值,这种情况出现在应用服务器和数据服务 ...

  10. 学习笔记(4):Python语言家族-Python函数参数-默认参数、可变参数

    立即学习:https://edu.csdn.net/course/play/31631/478638?utm_source=blogtoedu 为什么会报 none

最新文章

  1. Scala语言编写的爬虫应用-爬取一部小说
  2. 一文看懂NB-IoT!
  3. C# string.Empty
  4. 正则表达式需要转义的字符
  5. 进度条的另外一种用法
  6. 无关标签的一般长文本网页正文内容抽取
  7. BOMbing The System
  8. 前端学习(1512):vue-router文档
  9. SqlServer2008R2镜像(无域)
  10. 关于vs.net中读取文件出现乱码的现象
  11. Ubuntu 10.04.2上编译ecos工具
  12. 如何读取二进制图片-.ashx一般处理程序
  13. web版文件管理系统_临沂管家婆母婴版进销存软件产品特色
  14. jeb配置java环境_android逆向工具Jeb第一次启动
  15. 中标麒麟linux系统安装打印机_国产中标麒麟操作系统的打印机安装
  16. 电气工程师证书如何考试拿证
  17. setSingleChoiceItems和setPositiveButton两者触发时期
  18. 【情书加密】,c++花式表白,这样泡小师妹,没跑了。
  19. python无法正常启动0xc000007b_应用程序无法正常启动(0xc000007b)。
  20. jtest准考证打印

热门文章

  1. MooseFs的使用与操作
  2. 【Unity】6.2 在VS2015中调试 C# 脚本
  3. javascript配置ckfinder的路径
  4. 数据库DB2性能优化高级进阶
  5. mysql 中将汉字(中文)按照拼音首字母排序
  6. 企业——Redis的高可用的搭建
  7. centos下nginx安装和配置
  8. mongodb添加登陆验证
  9. property中的read,write是什么意思?
  10. php 3种常见设计模式