登录
首页 >  Golang >  Go问答

这段代码为什么生成的是随机的0和1?

来源:SegmentFault

时间:2023-02-25 08:10:09 323浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《这段代码为什么生成的是随机的0和1?》,聊聊随机数、go,希望可以帮助到正在努力赚钱的你。

问题内容

package main
import "fmt"

func main() {
    ch := make(chan int , 1)
    j := 0
    for {
        select {
            case ch 10){
            break;
        }
        j++;
        fmt.Println("Value recevied:", i)
    }

}

我的理解是循环中每次向 ch 中写入数据 ch 有可能是阻塞的,这种情况下 ch 的缓冲区是是1,
但是我把 ch 缓冲区长度改为 10

ch := make(chan int , 10)
好像也并没有用,还是随机的

正确答案

If one or more of the communications can proceed, a single one that can proceed is chosen via a uniform pseudo-random selection.

看这里,http://doc.golang.org/ref/spec#Select_statements

以上就是《这段代码为什么生成的是随机的0和1?》的详细内容,更多关于golang的资料请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表