栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java的接口和Haskell的类型类:区别和相似之处?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的接口和Haskell的类型类:区别和相似之处?

我会说一个接口有点像一个类型类

SomeInterface t
,其中所有值都具有类型
t ->whatever
(其中
whatever
不包含
t
)。这是因为有了Java和类似语言中的继承关系,所调用的方法取决于调用它们的对象的类型,而没有别的。

这意味着很难

add :: t -> t ->t
通过接口实现类似的功能,因为在一个以上的参数上它是多态的,因为接口无法指定该方法的参数类型和返回类型与的类型相同。被调用的对象(即“自我”类型)。使用Generics,有一种方法可以通过用通用参数(该参数应该与对象本身具有相同的类型)制作一个接口来伪造此伪装,例如
Comparable<T>
,它应如何使用,
Fooimplements Comparable<Foo>
以便您
compareTo(T otherobject)
具有类型
t -> t ->Ordering
。但这仍然需要程序员遵循此规则,并且当人们想要创建使用此接口的函数时,还必须引起麻烦,因为他们必须具有递归的泛型类型参数。

同样,您不会有类似的事情,

empty :: t
因为您不在这里调用函数,因此它不是方法。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号