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

是否可以修改其他程序包中定义的类型的方法集?

是否可以修改其他程序包中定义的类型的方法集?

Go
互换的青春 2021-05-14 18:39:31
内置的log和log.Logger不提供Error或之类的Warning方法Python。因此,我想Logger使用以下代码为内置类型编写一个:func (l *Logger) Error(v interface{}) {    info := fmt.Sprintf("ERROR: %v", v)    l.Println(info)}我把上面的代码在一个文件morelog.go下GOPATH/src/log。而在main.go我写道:logger := log.New(os.Stdout, "Test", 1)logger.Error("Error in main.")当我跑步时go build,我得到:./main.go:124: logger.Error undefined (type *log.Logger has no field or method Error)我知道我可以通过定义一个新类型并在该类型上定义方法来实现类似的目标。但是我认为,如果可以直接将方法添加到内置类型中,效果会更好。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

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