最小和最大功能通常用于刷力扣,但是粥汁和Go没有功能过载,因此每次您需要编写一堆Minint,Minfloat,Maxint功能时,它确实是从原始频谱中出来的!
是否有任何方法可以实现方法,多种类型的使用?其他语言具有通用类型,以确保如果在第18版之后引入GO,则可以达到此需求。
直接查看代码:
如果您认为类型约束是用丑陋方法编写的,则有此方法:
如果您懒得编写公共类型包,则可以使用官方扩展库:
其中,有序的实施如下:
我们没有在通用方法的呼叫中指定呼叫参数的类型,而是通过了汇编。如果您想明确指出,可以做到这一点:
如果未命名实际类型的生成类型,则将在编译类型推理期间触发汇编周期,然后将使用专门的通用函数来基于派生类型来调用相应的特殊情况。
可以看出,对于INT和Float,最小将扩展为两种类型的相应方法,这些方法在编译期间完成。
各自的约束。我们将达到该测量值,但是如果有秘密,实例化失败,并且该程序为Inchanlid。
相应的参考在这里。
此外,通用类型也可以用于类型,同时,它可以专门使用类型:
现在让我们解释一些用法。
GO通用使用的原因是避免歧义性的歧义大于和少于产生的歧义。此外,GO的通用类型不能直接标记,并且需要指出通用类型的约束。最大的约束级别是飞机{}。如果您学会了Java,您就会知道Java的所有对象都从对象继承了,并且可以更理解两者。
类型约束的写作有两种类型,一种是直接编写的,另一个是定义一个约束接口,然后通过接口指定约束集合。
例如,如果我们期待只能是非标记号码的类型,我们可以这样写:
但是,很难重复使用,因此您可以在接口中提及此约束,然后通过界面约束:
这也是扩展中未签名的实现。但是对于每种类型,每种类型都有一个附加符号。因此,这意味着T的约束不仅是int。基础类型的所有类型都是int的自定义类型,也可以满足t的约束:
让我们解释一下为什么界面可以制作类型约束。
首先,如何定义接口?接口的定义是一个方法集合。任何实现接口的方法的类型都称为接口的实现:如上图所示,类型p,q,q,类型r ... ...接口是实现的。但是,从另一个级别来看,界面还定义了一种集合的类型,并且集合中的元素已经实现了此连接。这次,接口的语义转换为一个集合的类型。这是我们如何通过接口组织理解约束的关键。
由于该接口可以理解为类型的集合,因此为什么不直接将类型放在接口中?以这种方式,类型是通过接口完成的类型。当然,也可以存在类型集合的接口。另外,如果接口约束非常简单,您还可以使用一行写作行:
现在让我们看一个场景:
这是一个简单的代码,扩展了切片元素n次。现在我们有一种自定义类型:
但是为什么这是?然后看:
在这里,我们仅将通用函数的返回值的类型更改为切片的类型,而不是切片元素类型( - >)的切片,因此它保留了t的完整信息,包括其方法。目前,方法调用成功。
当然,也有可能转身:
快来考虑一个问题,为什么类型成功?显然我们没有指定因子类型,并且整数具有各种类型,例如INT,INT32,INT64。无法确定输入号'2'是真的吗?
答案是因子和切片的元素是相同的类型,我们可以通过推断切片的类型来确定因子的类型,然后确定因子的类型。这是约束。
以上只是一个介绍。GO1.18的约束很复杂,坑留在此处并放入链接中。
仿制药的中断
类型参数建议
原始:https://juejin.cn/post/7096373901810204679