第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過無緩沖通道同時分配 Go 語言:它是如何工作的?

通過無緩沖通道同時分配 Go 語言:它是如何工作的?

Go
www說 2022-10-17 10:21:00
我正在學(xué)習(xí) Go 并在go.dev/tour/concurrency/2看到了這個程序package mainimport "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中的執(zhí)行流程a, b = b, a應(yīng)該是這樣的:創(chuàng)建一個臨時元組 (b, a)使用循環(huán)將 (b, a) 中的每個值分配給 (a, b) 中的變量該方法似乎不適用于 GO 中的這種場合。a, b = b, a那么這句話中究竟發(fā)生了什么?
查看完整描述

1 回答

?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗 獲得超6個贊

a, b = b, a是一個賦值,更具體地說是一個元組賦值。

規(guī)范中有詳細(xì)說明:作業(yè):

元組賦值將多值運算的各個元素分配給變量列表。

[...] 任務(wù)分兩個階段進(jìn)行。首先,左側(cè)的索引表達(dá)式指針間接(包括選擇器中的隱式指針間接)的操作數(shù)和右側(cè)的表達(dá)式都按通常的順序進(jìn)行計算。其次,作業(yè)是按從左到右的順序進(jìn)行的。

a, b = b, a  // exchange a and b

b因此,首先讀取and的(當(dāng)前)值a,然后將它們分配給ab,從而有效地交換它們的值。

這個:

x, y := <-c, <-c

是一個簡短的變量聲明,它相當(dāng)于一個帶有初始化表達(dá)式但沒有類型的常規(guī)變量聲明:

var x, y = <-c, <-c

這將從c, 兩次接收,并將接收到的值分配給xy。


查看完整回答
反對 回復(fù) 2022-10-17
  • 1 回答
  • 0 關(guān)注
  • 106 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號