【问题标题】:Why does this basic go-routine program return true?为什么这个基本的 go-routine 程序返回 true?
【发布时间】:2019-11-21 10:48:03
【问题描述】:

我是 Go 新手,我试图理解为什么此代码返回:

12
true

这是简单的程序:

package main

import "fmt"

func foo(c chan int, myValue int) {
    c <- myValue * 2
}

func main() {
    c := make(chan int)
    go foo(c, 3)
    go foo(c, 6)

    v1, v2 := <-c

    fmt.Println(v1)
    fmt.Println(v2)
}

真的只是因为它得到了一些随机值吗?

【问题讨论】:

标签: go channel


【解决方案1】:

双值receive 赋值中的第二个值是一个布尔值,用于报告通信是否成功。值v1 是从通道接收的值。 v2 的值为真,因为通信成功。

【讨论】:

    猜你喜欢
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    相关资源
    最近更新 更多