为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
回首忆惘然 2022-06-13 16:13:51
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>**有没有办法直接调用会员的方法**
查看完整描述

2 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

地图的价值是interface{}。它没有方法。


相反,将地图声明为:


v=map[string]mod {

  "file": mod{},

  "time": mod{},

}

或者使用类型断言:


v["file"].(mod).New()


查看完整回答
反对 回复 2022-06-13
?
桃花长相依

TA贡献1860条经验 获得超8个赞

使用类型断言有效,如下:

a,_ := v["file"].(mod)
a.New()


查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信