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

为什么我的 setter 不能处理匿名结构字段?

为什么我的 setter 不能处理匿名结构字段?

Go
暮色呼如 2021-06-28 13:04:20
我只是在学习 Go,这里有一些我无法理解的行为:package mainimport "fmt"type Message interface {    SetSender(sender string)}type message struct {    sender string}type Join struct {    message    Channel string}func (m message) SetSender(sender string) {    m.sender = sender}func main() {    var msg Message    msg = Join{}    msg.SetSender("Jim")    fmt.Printf("%s", msg)}这会打印{{} },因此SetSender调用似乎没有生效。我怀疑它以某种方式对 的副本进行操作message,但我无法弄清楚这样的副本来自哪里。我尝试更改SetSender以进行操作,*message但无法编译。游乐场:http : //play.golang.org/p/yNdnM1bfSG也欢迎提供替代设计模式的建议。我有几种类型的消息(仅Join在此处显示),但它们都有一些共同的字段(仅sender在此处显示)。我想避免为每种消息类型编写和导出单独的构造函数,所以如果我能继续导出类型本身,那就太好了。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

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