下面的代码是对 Python 脚本的改编。当然,它不能编译,这有几个原因。
我正在努力理解如何修复它以提供正确的结果。
特别是:
我想表示一种类型 ( float64
) 或array
这种类型的an所以我天真地使用 an[]interface
但是然后传递一个数组将不起作用。我知道我可以用我的数组深度复制一个接口数组,但这是唯一的方法吗?
反射检查有效(有点),但后来我又回到将接口转换为 an[]interface
并且不起作用。
一种更简单的方法是通过,[]float
但我也想让代码通用(哎呀!;-)足以接受[][]floats
并递归地进行比较。
我完全偏离轨道了吗?
func assertArrayEquals(first []interface{}, second []interface{}) bool {
if len(first) != len(second) {
return false
}
for i := range first {
if reflect.ValueOf(first[i]).Kind() == reflect.Array {
assertArrayEquals([]interface{}(first[i]), []interface{}(second[i]))
} else if second[i] != first[i] {
return false
}
}
return true
}
func main() {
assertArrayEquals([]float64{[]float64{0, 1}, []float64{0, 1}}, []float64{[]float64{0, 1}, []float64{0, 1}})
}
慕森卡
相关分类