我想创建一个函数,它接受一个映射或一个数组,并迭代它,在每个项目上调用一个函数,该函数知道如何处理遇到的任何类型。
这是我第一次失败的尝试。目前,当我在实际用例中运行它时,它总是说“哦哦!”。
func DoTheThingToAllTheThings(data_interface interface{}) int {
var numThings int
switch data := data_interface.(type) {
case map[interface{}]interface{}:
numThings = len(data)
for index, item := range data {
DoTheThing(index, item)
}
case []interface{}:
numThings = len(data)
for index, item := range data {
DoTheThing(index, item)
}
default:
fmt.Println("uh oh!")
}
return numThings
}
数组或映射可能包含许多不同的内容,因此尝试匹配每个可能的输入不是一个选项。
换句话说,有没有办法在不确切知道它是什么的情况下迭代 Go 中的数组或映射?
慕桂英3389331
相关分类