刚刚开始编写 Go 代码,我遇到了一个有趣的问题。
有没有一种方法可以轻松地遍历作为空接口引入的数组中的项目而无需重复代码?考虑以下:
function(someArr interface{}){
switch someArr.(type){
case []int :
arr := (someArr).([]int)
for i := range (arr) {
// CODE
}
case []string :
arr := (someArr).([]string)
for i := range (arr) {
// CODE
}
}
}
在此示例中,CODE 中的代码完全相同。但是,我不能将它从 switch 中取出,因为类型断言 arr 会超出范围。同样,我无法在 switch 之前定义 arr,因为我不知道它将是什么类型。这可能是做不到的。在这种情况下,当我使用不规则模式(一些整数数组、一些数组或字符串)解析 JSON 时,对于这种事情,有什么更好的习惯用法?
GCT1015
至尊宝的传说
相关分类