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

将接口类型的集合传递给函数

将接口类型的集合传递给函数

Go
呼啦一阵风 2021-07-28 21:11:15
我无法找出在 Go 中使用接口的正确方法。我的函数需要获取实现某种方法的项目的映射。它看起来像这样:type foo interface {    bar() string}func doSomething(items map[string]foo) {}我正在尝试使用实现foo接口的类型调用此函数。type baz struct { }func (b baz) bar() string {    return "hello"}items := map[string]baz{"a": baz{}}doSomething(items)但我收到以下错误:cannot use items (type map[string]baz) as type map[string]foo in function argument但是,当我这样做时它工作正常:items := map[string]foo{"a": baz{}}doSomething(items)但是我想针对不同的接口重用这个相同的地图。基本上我正在索引很多对象,然后将它们传递给需要实现不同接口来计算结果的各种函数。我要地图传递给一个函数作为地图的一个foo和另一个功能地图foobar。我尝试了各种类型的断言和转换,但似乎没有任何效果,所以我不确定我是没有使用正确的语法还是完全错误。去游乐场http://play.golang.org/p/8mMWCDG7vm。
查看完整描述

1 回答

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

添加回答

举报

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