相关疑难解决方法(0)

Golang嵌入式结构

是否可以在不使用嵌入式结构的情况下继承类型的方法?

第一段代码是嵌入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

8
推荐指数
1
解决办法
8240
查看次数

标签 统计

go ×1