Rust:trait中 关联类型、泛型参数、默认参数混用
关联类型:是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中 关联类型、泛型参数、默认参数混用相关推荐
- 【TS】函数重载--可选参数--默认参数
可选参数–默认参数 在ts中定义的数据类型,某些情况下只需要传入定义数据类型的一部分参数,比如:id .name.age.address,此时需要修改用户的名称,那么只需要传入id.name就够了:某 ...
- 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )
文章目录 一. Dart 面向对象 二. 类定义 三. 类的继承 四. 私有变量 五. 可选参数与默认参数 六. 初始化列表 七. 完整代码示例 八. 相关资源 一. Dart 面向对象 OOP 基本 ...
- python参数默认值实例_Python中使用partial改变方法默认参数实例
#!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #partial.py #authror: orangleliu ''' funct ...
- [转载] Java中方法不可以有默认参数
参考链接: Java中的方法 Java中的方法不可以有默认参数,只能通过重载来实现: public class ParameterDefault { /** * @param args */ publ ...
- JavaScript函数中的arguments(js函数中的arguments,函数默认参数arguments)
简述:js中的函数大家都比较熟悉,今天来分享下函数中的默认参数arguments.js的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类型,即使你在定义函数时,只设置了两个 ...
- python函数可以按照参数名称方式传递参数_python函数传入参数(默认参数、可变长度参数、关键字参数)...
1.python中默认缺省参数----定义默认参数要牢记一点:默认参数必须指向不变对象! 1 def foo(a,b=1):2 printa,b3 4 foo(2) #2 1 5 foo(3,100) ...
- PYTHON 笔记:函数的参数(关键字参数,默认参数,可变长参数,可变长的关键字参数)
一般的函数参数是位置参数,位置不对会出问题 1.关键字参数 使用参数名提供的参数就是关键字参数,有了关键字参数,顺序就不会有影响. >>>def printGrade(name,ID ...
- 五 、Kotlin学习之命名参数默认参数
一.命名参数 fun isSquare(width: Int, height: Int): Boolean {return width == height }isSquare(20, 30) isSq ...
- Hibernate 中Datetime类型属性数据库默认值
为什么80%的码农都做不了架构师?>>> 在有些时间,我们在设置Hibernate 的配置文件时希望POCO类的一个属性使用数据库中的默认值,这种情况出现在应用服务器和数据服务 ...
- 学习笔记(4):Python语言家族-Python函数参数-默认参数、可变参数
立即学习:https://edu.csdn.net/course/play/31631/478638?utm_source=blogtoedu 为什么会报 none
最新文章
- Scala语言编写的爬虫应用-爬取一部小说
- 一文看懂NB-IoT!
- C# string.Empty
- 正则表达式需要转义的字符
- 进度条的另外一种用法
- 无关标签的一般长文本网页正文内容抽取
- BOMbing The System
- 前端学习(1512):vue-router文档
- SqlServer2008R2镜像(无域)
- 关于vs.net中读取文件出现乱码的现象
- Ubuntu 10.04.2上编译ecos工具
- 如何读取二进制图片-.ashx一般处理程序
- web版文件管理系统_临沂管家婆母婴版进销存软件产品特色
- jeb配置java环境_android逆向工具Jeb第一次启动
- 中标麒麟linux系统安装打印机_国产中标麒麟操作系统的打印机安装
- 电气工程师证书如何考试拿证
- setSingleChoiceItems和setPositiveButton两者触发时期
- 【情书加密】,c++花式表白,这样泡小师妹,没跑了。
- python无法正常启动0xc000007b_应用程序无法正常启动(0xc000007b)。
- jtest准考证打印