我有两个golang函数,完成同样的事情,一个需要输入切片,另一个需要一个地图作为输入。我想将它合并为一个函数,以避免重复。如何将不同类型传递给函数
func DoSomething([]data) {
//do something.
}
func DoSomething(map[string]data) {
//do something.
}
组合的功能可能看起来像:
func DoSomethingNew (param type) {
//param could be map or slice
}
我想知道是否可以通过不同类型相同的功能golang以及如何。我google搜索,但无法找到任何相关的。
感谢您的回答,我有一个后续问题,虽然我得到了我原来的问题的答案。接口解决了这个问题。但我不想检测类型(如果可能的话,我也希望只有map或slice类型),然后使用范围覆盖数据的for循环。这似乎不工作:https://play.golang.org/p/jggFscxfHx。因为我无法覆盖界面。 –
@GauravSinha看看这个Q/A http://stackoverflow.com/questions/14025833/range-over-interface-which-stores-a-slice它听起来就像你想要的东西。 –
不错,对反射不太了解。谢谢:):thumbsup –