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

基于相同接口的混合类型列表

基于相同接口的混合类型列表

Go
慕斯709654 2021-05-19 16:18:14
我希望下面的代码允许我混合类型并通过它们的接口取回它们(也许可以吗?),但是显然不起作用。如果不使用像反射这样的东西(在频繁使用的循环中可能会很昂贵),有没有办法实现我在这里尝试的东西?我是否需要为要存储的每种类型分别列出清单?代码:package mainimport (    "fmt"    "container/list")type Updater interface {    Update()}type Cat struct {    sound string}func (c *Cat) Update() {    fmt.Printf("Cat: %s\n", c.sound)}type Dog struct {    sound string}func (d *Dog) Update() {    fmt.Printf("Dog: %s\n", d.sound)}func main() {    l := new(list.List)    c := &Cat{sound: "Meow"}    d := &Dog{sound: "Woof"}    l.PushBack(c)    l.PushBack(d)    for e := l.Front(); e != nil; e = e.Next() {        v := e.Value.(*Updater)        v.Update()    }}错误:prog.go:38: v.Update undefined (type *Updater has no field or method Update)游乐场:http://play.golang.org/p/lN-gjogvr_
查看完整描述

1 回答

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

添加回答

举报

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