我可以在Golang中创建一个类型的别名吗?

Adr*_*xey 12 alias types go

我正在努力学习Go.

我在go中找到了这个简洁的Set实现:gopkg.in/fatih/set.v0,但我更喜欢用更明确的名称命名我的集合set.Set,执行如下操作:

type View set.Set
Run Code Online (Sandbox Code Playgroud)

本质上,我希望我的View类型继承set.Set的方法.因为,View 是一个 set.Set描述符.但是我知道Go在继承方面非常高峰,而且输入一般.

现在,我一直在尝试以下还挺继承,但试图利用一些功能,如当它导致错误的负载func Union(set1, set2 Interface, sets ...Interface) Interfacefunc (s *Set) Merge(t Interface):

type View struct {
    set.Set
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法以类似Go的方式实现我想要的东西,或者如果我只是想将我的优秀'OO实践应用于丢弃它们的语言,请.

Jac*_*ore 24

如果其他人回到这个问题,从Go 1.9开始,现在支持类型别名.

类型别名具有以下形式: type T1 = T2

所以在你的例子中你可以做到type View = set.Set,一切都会按你的意愿运作.