学习Golang要努力,但是不要急!今天的这篇文章《在泛型 go 中模拟方法类型参数》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!
问题内容在观看了 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
}
失败并出现错误:无法在没有实例化的情况下使用泛型类型 function(type a, b)
如果您尝试向方法添加类型参数,并使用普通函数,您会得到:methods 不能有类型参数
我想知道是否有人找到了一种使函子与当前版本的草案一起工作的方法。
解决方案
您还没有传递泛型类型;在您的示例代码中, functor
将 function
视为不是通用的。正确的代码(编译后,see here)是:
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)
}
文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《在泛型 go 中模拟方法类型参数》文章吧,也可关注编程网公众号了解相关技术文章。