golang实现python xrange方法
发布时间:2020-12-16 18:10:31 所属栏目:大数据 来源:网络整理
导读:在python中,可以使用xrange方法方便地获取一个整数列表: for v in xrange( 5 ): print(v) 输出: 01234 golang没有原生的xrange方法,不过可以使用golang的channel配合goroutine实现一个xrange方法。 下面是一个简易版的: func xRangeInt(count int ) cha
在python中,可以使用xrange方法方便地获取一个整数列表: for v in xrange(5):
print(v)
输出: 0 1 2 3 4 golang没有原生的xrange方法,不过可以使用golang的channel配合goroutine实现一个xrange方法。 func xRangeInt(count int) chan int {
ch := make(chan int)
go func() {
for i := 0; i < count; i++ {
ch <- i
}
close(ch)
}()
return ch
}
完整的xrange可以接受三个参数, for v in xrange(10,20,2):
print(v)
输出: 10 12 14 16 18 下面完善一下 golang版的 xRangeInt方法: func xRangeInt(args ...int) chan int {
if l := len(args); l < 1 || l > 3 {
fmt.Println("error args length,xRangeInt requires 1-3 int arguments")
}
var start,stop int
var step int = 1
switch len(args) {
case 1:
stop = args[0]
start = 0
case 2:
start,stop = args[0],args[1]
case 3:
start,step = args[0],args[1],args[2]
}
ch := make(chan int)
go func() {
if step > 0 {
for start < stop {
ch <- start
start = start + step
}
} else {
for start > stop {
ch <- start
start = start + step
}
}
close(ch)
}()
return ch
}
使用xRangeInt: func main() {
for v := range xRangeInt(20, 10, -3) {
fmt.Println(v)
}
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |