Function 函数是否可以接受两种类似类型中的任何一种作为参数?
例如,假设我有一个名为Function 函数是否可以接受两种类似类型中的任何一种作为参数?,function,go,struct,Function,Go,Struct,例如,假设我有一个名为calc的函数,它接受一个Foo作为参数。但是Bar与Foo非常相似,它也可以用于calc函数--Foo和Bar共享我需要执行的3或4个字段calc,但是Bar还有一些其他字段 有没有办法编写一个函数,以便传入Foo或Bar 使用类似于calc的参数的语言,以便在函数中使用满足契约的任何东西。Go中的等价物是什么?有两种解决方案: 在calc 等待添加泛型以继续: 我们将利用从围棋社区收集的反馈来决定如何 继续前进。如果草稿设计很受欢迎且不需要 如果发生重大变化,下一步
calc
的函数,它接受一个Foo
作为参数。但是Bar
与Foo
非常相似,它也可以用于calc
函数--Foo
和Bar
共享我需要执行的3或4个字段calc
,但是Bar
还有一些其他字段
有没有办法编写一个函数,以便传入Foo
或Bar
使用类似于
calc
的参数的语言,以便在函数中使用满足契约的任何东西。Go中的等价物是什么?有两种解决方案:
calc
您仍然可以使用界面,但是你必须为这两种类型定义getter/setter方法。这意味着我必须在
Foo
和Bar
中提供像GetQuarter
和GetYear
这样的函数,以便calc
可以执行它的计算?我肯定你知道Go目前没有泛型,因此,不可能有直接的等价物。您可以创建基于行为的接口,也可以进行运行时检查。@JimB是的,我认为您是对的