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

模版网站怎么做海外域名注册网站

模版网站怎么做,海外域名注册网站,免费的cms视频网站,wordpress资料图片不显示定义一种具有比较能力的类型是一种常见需求,比如对一组相同类型的值进行排序,就需要进行两两比较,那么在Go语言中有没有办法定义一种具有比较能力的Interface,实现该接口的类型都具备比较能力呢,最常见最容易的办法是定…

定义一种具有比较能力的类型是一种常见需求,比如对一组相同类型的值进行排序,就需要进行两两比较,那么在Go语言中有没有办法定义一种具有比较能力的Interface,实现该接口的类型都具备比较能力呢,最常见最容易的办法是定义一个与 any 比较的接口方法:

type Comparable interface {func LessThen(a any) bool
}func Sort[T Comparable] (s []T) {// s[i].LessThen(s[j])
}

具体实现的时候进行类型断言:

type User struct {Age int
}func(u *User) LessThen(a any) bool {u2, ok := a.(*User)if !ok {return false}return u.Age < u2.Age
}

多少缺点意思,没办法约束比较目标的类型与自己相同,于是我们想到可以利用 Go1.18 引入的范型来约束比较目标类型,于是 Comparable 定义改进为:

type Comparable[T any] interface {func LessThen(t T) bool
}

实现改变为:

// 实现接口 Comparable[*User]
func(u *User) LessThen(u2 *User) bool {return u.Age < u2.Age
}

随之 Sort 方法也要修改:

func Sort[T Comparable[*User]] (s []T) {// s[i].LessThen(s[j])
}

但这样的 Sort 方法限制了 T 只能与 *User 比较,要想 T 具有与自身类型比较的能力,Sort 定义需要再次修改:

func Sort[T Comparable[T]] (s []T) {// s[i].LessThen(s[j])
}

这样的 Sort 方法定义就比较通用了,基本实现了我们最初的目标,虽然看起来有点晦涩难懂,但好在接口实现比较简单, 比如:

type Int intfunc (i Int) LessThen(o Int) bool {return i < o
}Sort([]Int{3, 5, 7})type Time time.Timefunc (t Time) LessThen(t2 Time) bool {return time.Time(t).Before(time.Time(o))
}Sort([]Time{Time(time.Now()), Time(time.Now().Add(-time.Minute))})

期待后面版本的 Go 语言的 Interface 和范型加入对 self 的支持,这样的话我们的接口定义就会变得简单直接,比如:

// 伪代码,无法编译// 限制它的实现必须是与实现者自身类型比较,而不是其他类型
type Comparable interface {func LessThen(t self) bool
}

Golang 2 目前有一个提案就是讨论关于 self的: https://github.com/golang/go/issues/28254,有兴趣也可以关注参与

http://www.dtcms.com/a/417360.html

相关文章:

  • 网站建设是不是要有营业执照wordpress怎么做下载页
  • 360免费建站方法动漫模板素材图片
  • 长春网站开发培训音酷网站建设
  • 自适应网站设计怎么做网站的自然排名
  • 阳泉住房和城乡建设部网站广东省建设安全卡查询网站
  • 沈阳软件公司 网站制作销售课程视频免费
  • 哪个网站可以学做标书黄山seo排名优化技术
  • 网站备案填写电话号码铁岭 建筑公司网站 中企动力建设
  • 中山哪里有做网站WordPress源码路由
  • 简单网页设计模板网站手机商城图片
  • 外贸网站做的作用是什么wordpress品牌分类
  • 网站开发常用技术美间软装官网
  • 自己给自己网站做推广企业招聘官网
  • 唐山网站网站开发什么意思
  • 备案网站制作jsp做电影网站
  • 家居企业网站建设行情网站制作网站建设报价
  • 天津做网站比较好的公司提供有经验的网站建设
  • 建设网站免费手机建网站推广
  • 碧江网站建设什么网站可以做任务领赏金
  • 为什么进不了中国建设银行网站一键制作单页网站
  • 安卓app做网站外壳怎样做水族馆网站
  • wordpress访问仪表盘天津网站优化公司价格
  • 昆山那个网站推广好报名网站如何做
  • 手机怎么做钓鱼网站做招聘网站赚钱吗
  • 网站源码分享平台wordpress建立目录
  • 个人做网站有什么用网站开发公司多少钱
  • 基于php+mysql的网站开发wordpress代刷网主题
  • 甘南网站建设哪个网站有帮忙做公开课课件
  • 南通城乡住房建设厅网站首页沧州市网络公司
  • 景安 怎么把网站做别名艺术字体在线生成器转换器