
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) }}
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月04日 21时27分41秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
IE下尚未实现错误的原因
2021-05-09
创建自己的Docker基础镜像
2021-05-09
Python 简明教程 --- 20,Python 类中的属性与方法
2021-05-09
KNN 算法-理论篇-如何给电影进行分类
2021-05-09
Spring Cloud第九篇 | 分布式服务跟踪Sleuth
2021-05-09
CODING 敏捷实战系列课第三讲:可视化业务分析
2021-05-09
工作动态尽在掌握 - 使用 CODING 度量团队效能
2021-05-09
CODING DevOps 深度解析系列第二课报名倒计时!
2021-05-09
数据结构第八节(图(下))
2021-05-09
基于Mustache实现sql拼接
2021-05-09
POJ 2260 Error Correction 模拟 贪心 简单题
2021-05-09
gRPC在 ASP.NET Core 中应用学习(一)
2021-05-09
@SuppressWarnings 用法
2021-05-09
看完你就明白的锁系列之锁的状态
2021-05-09
看完这篇操作系统,和面试官扯皮就没问题了
2021-05-09
我的价值观
2021-05-09
一文详解 Java 并发模型
2021-05-09
值类型与引用类型(中)
2021-05-09
MSSQL 2005 数据库变成可疑状态
2021-05-09
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2021-05-09