生成具有整数范围的数组

时间:2016-02-29 16:48:02

标签: arrays go range slice

我有两个值:

  

[3:6]

我试图在Golang玩一些东西,但我无法找到一个根据这些值创建数组的好方法。

这就是我想要实现的目标:

[3,4,5,6]

1 个答案:

答案 0 :(得分:4)

您可以使用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
}