我有兩個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 –