Почему эта основная программа рутины возвращает true? - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в 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)
}

Это правда только потому, чтовозвращает случайное значение обратно?

1 Ответ

4 голосов
/ 11 июля 2019

Второе значение в двух значениях receive assigment является логическим сообщением об успешном обмене данными. Значение v1 - это значение, полученное из канала. Значение v2 истинно, потому что связь была успешной.

...