使用 go 遍历信道时数字出现奇数的原因
在 go 中,如下所示的代码段将生成奇数:
package mainimport "fmt"func main() { ch := make(chan int, 10) for i := 0; i < 10; i++ { ch <- i } close(ch) for range ch { fmt.println(<-ch) }}
登录后复制
原因:
原因在于你在遍历过程中还在读取信道。最初,遍历每前进一步读取一个值,但是你在遍历中又读取了一次值,导致又前进了下一步。
为了单纯地遍历并打印写到信道中的值,可以将遍历部分修改为:
for v := range ch { fmt.Println(v)}
登录后复制
以上就是为什么使用 Go 遍历信道时数字出现奇数?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2313757.html