当前位置: 首页 > news >正文

做化妆刷的外贸网站旅游电商网站建设方案模板

做化妆刷的外贸网站,旅游电商网站建设方案模板,网站制图软件,win7一键优化工具目录 1、类型约束 2、泛型函数 3、泛型结构体 4、泛型接口 5、以接口作为类型约束 关键词#xff1a;泛型、类型参数、类型约束 Go 语言在 1.18 版本引入了泛型#xff08;Generics#xff09;特性#xff0c;可以编写更通用、可复用的代码#xff0c;泛型可以用于泛型、类型参数、类型约束 Go 语言在 1.18 版本引入了泛型Generics特性可以编写更通用、可复用的代码泛型可以用于泛型函数、泛型结构体、泛型接口。 1、类型约束 在 Go 泛型中类型参数需要满足一定的约束条件才能被正确使用。常见的约束有 comparablecomparable约束要求类型参数必须是可比较的类型即可以使用和!进行比较的类型比如整数、字符串、布尔值等。 anyany约束表示类型参数可以是任意类型它是最宽松的一种约束条件。当定义泛型接口、结构体等时如果希望允许任何类型作为类型参数就可以使用any约束。 此外还可以自定义类型约束来满足更复杂的需求通过定义接口并在接口中定义一组方法要求然后让类型参数满足该接口的要求来实现自定义约束。 常用组合[T comparable]、[T, U comparable]、[T, U any]、[T any, U comparable]、[T MyInterface] 2、泛型函数 在函数名后面中括号中指定类型参数、类型约束。 在很多情况下编译器可以根据实参自动推断类型参数的值这样就不需要显式地指定类型参数。 //单类型参数 func Compare[T comparable](a, b T) bool {return a b }//显示指定类型参数 Compare[int](5, 5) Compare[string](hello, hello)//自动推断类型参数 Compare(5, 5) Compare(hello, hello)//多类型参数 func Compare[T comparable, U any](a, b T, c U) bool {fmt.Println(c:, c)return a b }//显示指定类型参数 Compare[int, string](1, 2, c)//自动推断类型参数 Compare[int](1, 2, c) 3、泛型结构体 定义包含类型参数的结构体以便在结构体内部使用不同类型的数据。 在结构体名后面中括号中指定类型参数、类型约束。 在内部成员中使用类型参数。 // 泛型结构体 type Pair[T, U any] struct {First T //泛型T成员变量Second U //泛型U成员变量 }// 泛型成员函数 func (p *Pair[T, U]) print(a T, b U) {fmt.Println(p.First)fmt.Println(p.Second)fmt.Println(a)fmt.Println(b) }func main() {p : Pair[string, int]{First: a,Second: 1,}p.print(b, 2) }4、泛型接口 泛型接口可以定义一组方法这些方法可以使用类型参数来处理不同类型的数据。 在接口名后面中括号中指定类型参数、类型约束。 在内部成员方法中使用类型参数。 type PairInterface[T, U any] interface {Print(T, U) }// 泛型结构体 type Pair[T, U any] struct {First T //泛型T成员变量Second U //泛型U成员变量 }// 泛型成员函数 func (p *Pair[T, U]) Print(a T, b U) {fmt.Println(p.First)fmt.Println(p.Second)fmt.Println(a)fmt.Println(b) }func main() {p : Pair[string, int]{First: a,Second: 1,}p.Print(b, 2) } 5、以接口作为类型约束 以接口作为【类型约束】可以在接口中定义一组方法只有实现了接口的结构体类型才可以作为【类型参数】。 如下泛型函数 DoMath 的类型参数 T 的约束类型为接口 MathableInterger 实现了接口 Mathable因此可以作为泛型函数 DoMath 的类型参数。 package mainimport fmt// Mathable接口定义了Add和Subtract两个方法要求作为自定义类型约束 type Mathable interface {Add(other Mathable) MathableSubtract(other Mathable) Mathable }// DoMath函数T是类型参数且必须满足Mathable约束 func DoMath[T Mathable](a, b T) T {return a.Add(b).Subtract(b) }// Integer结构体实现了Mathable接口 type Integer struct {value int }func (i *Integer) Add(other *Integer) *Integer {return Integer{value: i.value other.value} }func (i *Integer) Subtract(other *Integer) *Integer {return Integer{value: i.value - other.value} }func main() {a : Integer{value: 5}b : Integer{value: 3}result : DoMath(a, b)fmt.Println(result.value) }
http://www.w-s-a.com/news/779645/

相关文章:

  • 可信赖的邵阳网站建设德清做网站
  • 上传文件网站根目录wordpress博客管理
  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐
  • 免费微信微网站模板下载不了优化人员配置
  • wordpress 导航网站主题画流程图的网站
  • 皮卡剧网站怎样做排名网
  • 网站开发 兼职哪个网站是做安全教育
  • 商品展示类网站怎么用群晖nas做网站
  • 长腿蜘蛛wordpresssem优化推广
  • 中国铁路建设监理协会官方网站深圳福田区怎么样
  • 互联网网站开发发展wordpress文章自定义栏目
  • 众筹网站平台建设工信部网站备案系统