类型声明中使用的 struct 可用的访问方法

是否可以访问在类型的基础类型中声明的方法?例如,我希望 aResourceSet能够调用我的Set类型的AddIdmethod 。


见:http : //play.golang.org/p/Fcg6Ryzb67


package main


type Resource struct { 

  Id uint32

}


type Set map[uint32]struct{}


func (s Set) AddId(id uint32) {

  s[id] = struct{}{}

}


type ResourceSet Set


func (s ResourceSet) Add(resource Resource) {

  id := resource.Id

  s.AddId(id)

}


func main() {

  resource := Resource{Id: 1}


  s := ResourceSet{}

  s.Add(resource)

}

我得到的错误是:


s.AddId undefined (type ResourceSet has no field or method AddId)


慕桂英3389331
浏览 165回答 2
2回答

慕的地8271018

新命名类型的全部意义在于拥有一个全新的空方法集。嵌入是一个不同的故事,添加一些语法糖来调用嵌入类型的方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go