报告对标准库类型进行基于索引的循环,其中循环体仅通过索引(如 x.At(i))访问元素。
一些标准库类型现在提供迭代器方法,使您能够直接遍历元素。 这样便无需进行索引算术运算,使循环意图更加明确。
示例:
func TupleNames(t *types.Tuple) string {
var names []string
for i := 0; i < t.Len(); i++ {
names = append(names, t.At(i).Name())
}
return strings.Join(names, ",")
}
要修正代码,请使用将 Len/At 循环替换为 Tuple.Variables 迭代快速修复。
在应用快速修复后:
func TupleNames(t *types.Tuple) string {
var names []string
for v := range t.Variables() {
names = append(names, v.Name())
}
return strings.Join(names, ",")
}