golang实现python xrange方法
发布日期:2021-05-08 04:53:29 浏览次数:22 分类:精选文章

本文共 1286 字,大约阅读时间需要 4 分钟。

在python中,可以使用xrange方法方便地获取一个整数列表:

for v in xrange(5):    print(v)

输出:

01234

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可以接受三个参数,xrange(start, stop, step)。比如

for v in xrange(10, 20, 2):    print(v)

输出:

1012141618

下面完善一下 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, stop, 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)    }}
上一篇:软件测试原来是一本艺术
下一篇:php 可变数量参数

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月04日 21时27分41秒