无效的接收器类型[] T([] T是未命名的类型)解决方法?

时间:2014-10-23 11:08:03

标签: go

我想在[]T上定义一个方法,其中T是我定义的类型。
看起来我必须定义一个新类型才能做到这一点,但这阻止我在这个新类型上使用切片的所有内置函数(例如len)。

这样做只是为了制作普通的函数,而不是方法吗? (有点像append()可能是一种方法,但不是吗?)

1 个答案:

答案 0 :(得分:13)

您可以定义切片类型:

type MySliceType []SomeType
  • 您仍然可以对MySliceType
  • 的值使用追加和切片操作
  • 您可以在MySliceType
  • 上定义方法

但是,你不能使用monkeypatch []SomeType的方法。