執行golantci-lint時出現gocritic的rangeValCopy警告如下。
main/main.go:123:2: rangeValCopy: each iteration copies 128 bytes (consider pointers or indexing) (gocritic)
for _, d := range org.Departments {
^
意思是在loop org.Departments
時,每一次loop會複製128bytes的Department
元素導致效能不好,建議改用pointer或indexing的方式來loop。
下面是原本的寫法,每次loop都會從org.Departments
copy元素內容到d
。
for _, d := range org.Departments {
doSomething(d)
}
改用indexing,每次loop則是從org.Departments
以index直接取得陣列元素。
for i := range org.Departments {
doSomething(org.Departments[i])
}
沒有留言:
張貼留言