小编典典

生成具有整数范围的数组

go

我有两个值:

[3:6]

我试图在Golang中玩一些游戏,但是我找不到能够根据这些值创建数组的好方法。

我要实现的目标是:

[3,4,5,6]

阅读 263

收藏
2020-07-02

共1个答案

小编典典

您可以利用该for ... range构造使其更紧凑甚至更快:

lo, hi := 3, 6
s := make([]int, hi-lo+1)
for i := range s {
    s[i] = i + lo
}

出于好奇,可以在不使用循环变量的情况下实现循环,但是这样会更慢,并且代码也更长。通过递减hi

for ; hi >= lo; hi-- {
    s[hi-len(s)+1] = hi
}

或递增lo

for ; lo <= hi; lo++ {
    s[len(s)-1-hi+lo] = lo
}
2020-07-02