是否可以在不使用嵌入式结构的情况下继承类型的方法?
第一段代码是嵌入Property结构的工作代码,Node我可以调用node.GetString它是一个方法Properties.我不喜欢这个是我初始化时Node我有(?)初始化其中的Properties结构.有没有解决的办法?
package main
import "fmt"
type Properties map[string]interface{}
func (p Properties) GetString(key string) string {
return p[key].(string)
}
type Nodes map[string]*Node
type Node struct {
*Properties
}
func main() {
allNodes := Nodes{"1": &Node{&Properties{"test": "foo"}}} // :'(
singleNode := allNodes["1"]
fmt.Println(singleNode.GetString("test"))
}
Run Code Online (Sandbox Code Playgroud)
最后,我想做类似以下的事情.哪里Node是类型Properties和初始化不需要初始化Property结构了.以下代码不起作用,但可能清楚我的目标是什么.
package main
import "fmt"
type Properties map[string]interface{}
func (p Properties) GetString(key string) string {
return p[key].(string)
}
type …Run Code Online (Sandbox Code Playgroud) go ×1