Go接口看起来就像只是表面上的样子,就像Haskell中的单参数类型类(构造函数类)一样。方法与接口类型相关联对象(特定类型)可能具有该接口的实现我不清楚Go是否以任何方式支持通过接口的有界多态性,这是类型类的主要目的。也就是说,在Haskell中,接口方法可以用于不同的类型,class I a where put :: a -> IO () get :: IO ainstance I Int where ...instance I Double where ....所以我的问题是Go是否支持类型多态性。如果不是,它们根本就不像类型类。它们并不是真正可比的。Haskell的类型类允许通过“泛型”(更高种类的多态性)对代码进行强大的重用-本文为此类形式的泛型程序的跨语言支持提供了很好的参考。通过类型类的即席或有界多态性在此处得到了很好的描述。这是Haskell中类型类的主要目的,并且没有通过Go接口来解决,这意味着它们根本不是非常相似。严格来说,接口的功能不那么强大-一种零阶类型类。