当组合两个切片时,例如水果和蔬菜,创造第三种,例如食物。附加水果和蔬菜并将结果直接分配给食物似乎是有意义的。
golangci-lint 的检查:“appendAssign”表明这不是一种可接受的方式,最好有替代方案(见下文)。
实现此目的最惯用的方法是什么?
最好的方法是使用 slices.Concat
food := slices.Concat(fruits, vegetables)
另一种选择是
food := make([]string, 0, len(fruits)+len(vegetables))
food = append(food, fruits...)
food = append(food, vegetables...)
具有预分配数组的优势。也可以工作
var food []string
food = append(food, fruits...)
food = append(food, vegetables...)