2016-02-29 88 views
0

的范围内,我有两个值:生成阵列与整数

[3:6]

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

这个我想什么来实现:

[3,4,5,6] 

回答

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 
}