我的方法如下所示:
func (t *Worker) updateInfo(n structType1, node structType2)
但是,现在我需要使用这个API来处理structType1和structType3,这意味着n可能是structType3。
我如何修改方法来实现这一点,而不是像下面这样编写另一个方法并复制相同的代码?
func (t *Worker) updateInfo(n structType3, node structType2)
编辑:这些结构体都是我自己自定义的结构体
2条答案
按热度按时间des4xlb01#
在这种情况下,可以使用泛型。
例如,假设
structType1
和structType2
有一个名为Print
的方法。我们可以定义一个接口类型声明,如下所示.
然后你需要用类型参数修改
Worker
结构和updateInfo
函数。Struct13
中的Print
函数用于演示目的。)我们可以如下所示使用上述实现。
dvtswwa32#
可以使用空接口
在go 1.18之后,您可以使用
any
在功能体中