猿问

为什么我不能像这样直接调用map成员的方法

type mod struct {

    src string

    dst string

}


func(m *mod)New(){

    m.src = "a"

    m.dst = "b"

}


var(


    v = map[string]interface{} {

        "file":mod{},

        "time":mod{},

    }


)

v["file"].New()

我收到一个错误:无效的限定类型,需要 packagename.identifier,找到:v["file"].New <*ast.SelectorExpr>


**有没有办法直接调用会员的方法**


回首忆惘然
浏览 110回答 2
2回答

Qyouu

地图的价值是interface{}。它没有方法。相反,将地图声明为:v=map[string]mod {&nbsp; "file": mod{},&nbsp; "time": mod{},}或者使用类型断言:v["file"].(mod).New()

桃花长相依

使用类型断言有效,如下:a,_&nbsp;:=&nbsp;v["file"].(mod) a.New()
随时随地看视频慕课网APP

相关分类

Go
我要回答