我正在学习 Go 并在go.dev/tour/concurrency/2看到了这个程序
package main
import "fmt"
func sum(s []int, c chan int) {
sum := 0
for _, v := range s {
sum += v
}
c <- sum // send sum to c
}
func main() {
s := []int{7, 2, 8, -9, 4, 0}
c := make(chan int)
go sum(s[:len(s)/2], c)
go sum(s[len(s)/2:], c)
x, y := <-c, <-c // receive from c
fmt.Println(x, y, x+y)
}
我记得在python中的执行流程a, b = b, a应该是这样的:
创建一个临时元组 (b, a)
使用循环将 (b, a) 中的每个值分配给 (a, b) 中的变量
该方法似乎不适用于 GO 中的这种场合。a, b = b, a那么这句话中究竟发生了什么?
www说
杨魅力
随时随地看视频慕课网APP
相关分类