dsds661730652211 2016-05-11 08:07
浏览 130
已采纳

从Go中的派生类型调用方法

I have two files, generic_handler.go, which essentially looks like this:

type Handler struct{
    fields map[string]interface{}
}

func (handler *Handler) addField(key string, value interface{}){ some code }

And stat_handler.go:

type StatHandler Handler

When I try to call (from within the stat_handler.go file) the method like this, I get an error:

//inside some function
stathandler.addField("some field", "some value")

It errors out with type StatHandler has no field or method addField. This is the same even if I export addField by making it AddField. Both of these files reside in the same package.

Is there something I am missing?

  • 写回答

3条回答 默认 最新

  • dongluojiao6322 2016-05-11 08:14
    关注

    In Go you'd typically do this through composition:

    type StatHandler struct {
        Handler  // Anonymous member of type Handler
    }
    
    // ...Later on
    var stathandler StatHandler
    stathandler.addField("some field", "some value")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 树莓派控制机械臂传输命令报错,显示摄像头不存在
  • ¥15 前端echarts坐标轴问题
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码