泛型

Rust 泛型

杀马特。学长 韩版系。学妹 提交于 2020-01-25 09:15:35
泛型可以使用在结构体中 struct Pair<T> { x: T, y: T, } 其中x,y都属于T类型。 实现结构体的方法或者关联函数需要在 impl 关键字后面指定泛型 impl<T> Pair<T> { fn new(x: T, y: T) -> Self { Self { x, y, } } } impl<T> Point<T> { fn x(&self) -> &T { &self.x } } 讲到泛型就绕不开 trait ,trait类似于其他语言中的接口 具体使用方法如下 pub trait Summarizable { fn summary(&self) -> String; } pub struct NewsArticle { pub headline: String, pub location: String, pub author: String, pub content: String, } impl Summarizable for NewsArticle { fn summary(&self) -> String { format!("{}, by {} ({})", self.headline, self.author, self.location) } } 要希望泛型拥有特定的功能,就必须指定泛型的trait,简称trait bound impl

Java基础3:泛型

北城余情 提交于 2020-01-25 03:18:31
一、什么是泛型 即参数化类型,也就是说所操作的数据类型被指定为一个参数。 List < String > list = new ArrayList < > ( ) ; 二、为什么使用泛型 1)可以在编译时候检查类型安全,因此避开运行时可能引发的 ClassCastException 可以节省时间。 2)消除了类型转换,这意味着可以用更少的代码,因为编译器确切知道集合中存储的是何种类型 。 三、泛型通配符 泛型在Java的容器类中最常见。约定规范: ? 表示不确定的java类型 T (type) 表示具体的一个java类型 K V (key value) 分别代表java键值中的Key Value E (element) 代表Element public class HashMap < K , V > extends AbstractMap < K , V > public V get ( Object key ) public V put ( K key , V value ) 1)上下边界 //上界通配符<? extends T>只能传入number的子类或者number public void showKeyValue1 ( Generic < ? extends Number > obj ) { System . out . println ( obj ) ; } /

java的泛型方法

你离开我真会死。 提交于 2020-01-24 22:00:03
public class Da { public static <A,T>T add(A a, T b) { return b; } public static void main(String[] args) { String a = "aaa"; Integer b = 9; System.out.println(add(a,b)); } } 方法的泛型在返回值处定义,多个的话就用逗号分开。 也可以在类上定义。 来源: CSDN 作者: fall_hat 链接: https://blog.csdn.net/fall_hat/article/details/104064169

day07_Scanner类、Random类、ArrayList 类

大城市里の小女人 提交于 2020-01-24 10:24:24
API 概述 API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。 API使用步骤 打开帮助文档。 点击显示,找到索引,看到输入框。 你要找谁?在输入框里输入,然后回车。 看包。java.lang下的类不需要导包,其他需要。 看类的解释和说明。 学习构造方法 使用成员方法/变量 引用类型使用步骤 类属于引用类型中的一种,所以去使用步骤符合引用类型的使用步骤。 1:导包 使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。 格式: 2:创建对象 使用该类的构造方法,创建一个该类的对象。 格式: 3:调用方法 调用该类的成员方法,完成指定功能。 格式: // 接收一个键盘录入的整数 int i = sc.nextInt(); Scanner类 Scanner使用步骤 查看类 java.util.Scanner :该类需要import导入后使用。 查看构造方法 public Scanner(InputStream source) :

CLR via C# 泛型 泛型方法

那年仲夏 提交于 2020-01-24 05:45:52
定义泛型类、结构或接口时,类型中定义的任何方法都可引用类型指定的类型参数。类型参数可作为方法参数、方法返回值或方法内部定义的局部变量的类型使用。然而,CLR还允许方法指定它自己的类型参数。这些参数也可作为参数、返回值或局部变量的类型使用。 在上面例子中,GenericType类定义了类型参数T,Converter方法也定义了自己的类型参数TOutput。这样的GenericType可以处理任意类型。Converter方法能将m_value字段引用的对象转换成任意类型----具体取决于调用时传递的类型实参是什么。泛型方法的存在,为开发人员提供了极大的灵活性。 泛型方法的一个很好地例子就是Swap方法: 为获取out和ref参数的方法使用泛型类型很有意思,因为作为out/ref实参传递的变量必须具有与方法参数相同的类型,以防止损害类型安全性。 //--泛型方法和类型推断 C#泛型语法因为涉及大量“<”和“>”符号,所以开发人员很容易被弄得晕头转向。为了改进代码的创建,增强可读性和可维护性,C#编译器支持在调用泛型方法时进行类型推断。这意味着编译器会在调用泛型方法时自动判断(或者说推断)要使用的类型。 //-- 类型可定义多个方法,让其中一个方法接受具体数据类型,让另一个接受泛型数据类型: 举例: 在第一个调用中,编译器可调用一个接受string参数的Display方法

typing-python用于类型注解的库

ぐ巨炮叔叔 提交于 2020-01-24 03:42:11
简介 动态语言的灵活性使其在做一些工具,脚本时非常方便,但是同时也给大型项目的开发带来了一些麻烦。 自python3.5开始,PEP484为python引入了类型注解(type hints),虽然在 pep3107 定义了函数注释(function annotation)的语法,但仍然故意留下了一些未定义的行为.现在已经拥有许多对于静态类型的分析的第三方工具,而pep484引入了一个模块来提供这些工具,同时还规定一些不能使用注释(annoation)的情况 #一个典型的函数注释例子,为参数加上了类型 def greeting(name: str) -> str: return 'Hello ' + name 伴随着python3.6的pep526则更进一步引入了 对变量类型的声明 ,和在以前我们只能在注释中对变量的类型进行说明 # 使用注释来标明变量类型 primes = [] # type:list[int] captain = ... #type:str class Starship: stats = {} #type:Dict[str,int] primes:List[int] = [] captain:str #Note: no initial value class Starship: stats: ClassVar[Dict[str,int]] = {} typing-

C#反射,泛型实现添加

喜夏-厌秋 提交于 2020-01-23 19:36:22
using System ; using System . Collections . Generic ; using System . Data . SqlClient ; using System . Linq ; using System . Reflection ; using System . Text ; using System . Threading . Tasks ; namespace ConsoleApp2 { class Program { static void Main ( string [ ] args ) { Stu s = new Stu ( ) { Id = 1 , Name = "cdwc" , ImAgePrOc = "fiodowwf" } ; OrmHelper . Add < Stu > ( s ) ; } class OrmHelper { public static int Add < T > ( T t ) { Type t1 = t . GetType ( ) ; PropertyInfo [ ] ps = t1 . GetProperties ( ) ; string [ ] values = ps . Where ( p = > p . Name . ToLower ( ) != "id" ) . Select ( p =

Day02-Collection、泛型

偶尔善良 提交于 2020-01-22 22:57:12
第一章 Collection集合 1.1 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集合 :集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。 1.2 集合框架 JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。 集合按照其存储结构可以分为两大类,分别是单列集合 java.util.Collection 和双列集合 java.util.Map ,今天我们主要学习 Collection 集合,在day04时讲解 Map 集合。 Collection :单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set 。其中, List 的特点是元素有序、元素可重复。 Set 的特点是元素无序,而且不可重复。 List 接口的主要实现类有 java.util.ArrayList 和 java.util.LinkedList

泛型

做~自己de王妃 提交于 2020-01-22 21:44:07
1.简介 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展 2.泛型的用法 泛型接口,接口持有泛型,类名<泛型> public interface TestApi < T > { T method1 ( T a ) ; } 泛型类,类持有泛型,类名<泛型> public class ResultDto < T > { private T result ; } 泛型方法,方法持有泛型,方法返回类型前加<泛型> public static < T > void method ( ) { } public static < T > T method1 ( T t , Class < T > clazz ) { return t ; } 3.K,V,T,E,?,object K表示键,V表示值,T表示type类型,E表示enum枚举, ? 表示不确定的类型,Object java中所有类的父类 4.泛型通配符 问号 <? extends T> 表示类型的上界,表示参数化类型是T 或是 T的子类。 <? super T> 表示类型的下界,表示参数化类型是T 或是 T的父类 来源: CSDN 作者: feicongcong 链接: https://blog.csdn.net/feicongcong/article/details

泛型

て烟熏妆下的殇ゞ 提交于 2020-01-22 21:38:17
泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。这意味着使用泛型的类型参数T,写一个类MyList,客户代码可以这样调用:MyList, MyList或 MyList。这避免了运行时类型转换或装箱操作的代价和风险。 目录 C# 中的泛型. 1 一、泛型概述. 2 二、泛型的优点. 5 三、泛型类型参数. 7 四、类型参数的约束. 8 五、泛型类. 11 六、泛型接口. 13 七、泛型方法. 19 八、泛型委托. 21 九、泛型代码中的default 关键字. 23 十、C++ 模板和C# 泛型的区别. 24 十一 、运行时中的泛型. 25 十二 、基础类库中的泛型. 27 一、泛型概述 泛型类和泛型方法兼复用性、类型安全和高效率于一身,是与之对应的非泛型的类和方法所不及。泛型广泛用于容器(collections)和对容器操作的方法中。.NET框架2.0的类库提供一个新的命名空间System.Collections.Generic,其中包含了一些新的基于泛型的容器类。要查找新的泛型容器类(collection classes)的示例代码,请参见基础类库中的泛型。当然