可以用特定的值初始化切片吗?

是否可以像在 python 中那样用所有1初始化一个切片?

PYTHON:

onesArray = np.ones(5)
onesList = [1]*5

GOLANG

onesSlice := make([]int, 5)
for i:= 0; i < len(onesSlice); i++{
onesSlice[i] = 1
}

有可能做得更好吗?

93252 次浏览

是的,但是您必须使用不同的语法。

oneSlice := []int{1, 1, 1, 1, 1}

它被称为“复合文字”

此外,如果有理由进行迭代(比如计算基于循环变量的值之类的) ,那么您可以使用 range关键字而不是旧式的方法,因为 i 等于,i 小于,i + + 循环。

for i := range onesSlice {
onesSlice[i] = 1
}