为了账号安全,请及时绑定邮箱和手机立即绑定

在泛型 go 中模拟方法类型参数

在泛型 go 中模拟方法类型参数

Go
浮云间 2022-06-13 14:56:20
看完 Philip Wadler 关于轻量级围棋的演讲后,我对最新的围棋泛型草案感到非常兴奋。但是现在有了一个可供我们使用的新泛型草案版本,似乎轻量级围棋中的一些东西不再可能。在谈话和论文中,他介绍了一个类似函数的接口,称为List. 论文中的方法不太奏效。type Any interface {}type Function(type a Any, b Any) interface {    Apply(x a) b}type Functor interface {   Map(f Function) Functor}失败并出现错误:cannot use generic type Function(type a, b) without instantiation如果您尝试向该方法添加类型参数,并使用您得到的普通函数:methods cannot have type parameters我想知道是否有人找到了使函子与当前版本的草案一起使用的方法。
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

您还没有使用泛型类型;在您的示例代码中,Functor将Function其视为不是通用的。正确的代码(编译,见这里)将是:


type Function(type a Any, b Any) interface {

    Apply(x a) b

}


type Functor(type a Any, b Any) interface {

   Map(f Function(a,b)) Functor(a,b)

}


查看完整回答
反对 回复 2022-06-13
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信