例如,假设我有一个名为calc
的函数,它以Foo
作为参数。但是Bar
与Foo
足够相似,它也可以在calc
函数中使用-Foo
和Bar
共享3或4个字段需要执行calc
,但Bar
还有一些其他字段。
有什么方法可以编写函数,以便可以传递Foo
或Bar
?
以C# I'd use an interface之类的语言作为calc
的参数,以便可以在函数中使用任何符合合同的内容。与Go中的功能等效吗?
答案 0 :(得分:0)
对此有两种解决方案:
使用界面,并为需要在calc
中访问的字段添加吸气剂
等待将泛型添加到Go:
我们将使用从Go社区收集的反馈来决定如何 前进。如果设计稿受到好评,并且不需要 重大更改,下一步将是正式的语言更改 提案。设定期望,如果每个人都完全满意 设计草图,并且不需要任何进一步的调整, 最早可以将通用语言添加到Go中的将是Go 1.17 发布,计划于2021年8月。当然,实际上, 是无法预料的问题,所以这是一个乐观的时间表;我们不能 做出明确的预测。