如何解决考虑预分配(prealloc)lint?

问题描述 投票:0回答:2

我发现

Consider preallocating [to] (prealloc)
这个问题在
golangci-lint
我的代码是:

var to []string
for _, t := range s.To {
    to = append(to, t.String())
}

你有办法在 lint 中解决这个问题吗?

go slice lint
2个回答
43
投票

预先分配一个具有容量的切片,这样

append()
将有更少(或没有)复制要做:

to := make([]string, 0, len(s.To))
for _, t := range s.To {
    to = append(to, t.String())
}

或者更好的是,不要使用

append()
而是分配给各个切片元素:

to := make([]string, len(s.To))
for i, t := range s.To {
    to[i] = t.String()
}

0
投票

以下内容也将使 lint 错误消失:

to := []string{}
© www.soinside.com 2019 - 2024. All rights reserved.