go語言中的<-
運算符是什麼?在與Go有關的許多代碼片段中看到了這一點,但它的含義是什麼?go語言中的「少於隨後的短劃線」運算符是什麼?
回答
你已經有了答案,一個基本組成部分,但在這裏不用。
將通道視爲消息隊列。
如果通道位於左側箭頭(<-)運算符的右側,則表示要使條目出列。保存在變量中項是可選
e <- q
如果信道是上的左箭頭運算符左側,這意味着入隊的條目。
q <- e
大約「出列」(接收),而不在變量存儲進一步注意:它可以在非緩衝的隊列被用來實現類似Java中的「等待/通知」操作:一個協程被阻塞等待出隊/接收信號,則另一個協程隊列/發送該信號,其內容不重要。(或者,發送者可能被阻塞,直到接收者拉出消息)
對於信道類型的操作數
ch
,接收操作<-ch
的值是從信道接收到的ch
的值。
它從一個通道接收一個值。見http://golang.org/ref/spec#Receive_operator
<-
用於在一個以上的地方在語言規範:
的
<-
操作者指定的信道的方向,發送或接收。如果沒有給出方向,則通道是雙向的。頻道可能僅限於發送或僅通過轉換或分配接收。對於信道類型的操作數
ch
,接收操作<-ch
的值是從信道接收到的ch
的值。值的類型是通道的元素類型。表達式阻塞,直到有值。從零通道接收永遠阻止。從關閉的通道接收總是成功,立即返回元素類型的零值。甲發送語句的頻道上發送的值。通道表達式必須是通道類型,並且值的類型必須可分配給通道的元素類型。
SendStmt = Channel "<-" Expression .
Channel = Expression .
接收運營商也是該select statement
箭頭給出了數據流向的提示。就我個人而言,我更喜歡Occam-Pi的語法?用於輸入而不是<-ch(提示查詢頻道)和!用於輸出而不是ch < - (提示通道指令) – 2013-04-10 16:40:45
我想知道爲什麼箭頭總是指向左側。爲什麼他們不使用<- and ->? – marcus 2013-05-15 15:50:59
- 1. Go中的「| =」運算符的含義是什麼?
- 2. 多少元運算符在C語言
- 3. 模運算符的語義是什麼?
- 4. SQL短劃線字符的作用是什麼?
- 5. Python的「is」運算符的Go等價物是什麼?
- 6. 錯誤「Bannon'運算符後缺少操作數」 - 'Bannon'運算符是什麼?
- 7. C#lambda運算符左側的_(下劃線字符)是什麼意思?
- 8. Erlang中非短路布爾運算符的用途是什麼?
- 9. Go語言中runtime-gdb.py的作用是什麼?
- 10. 在序言中,按位否定運算符(\)是做什麼的?
- 11. 用於C#語言的'this'是什麼?
- 12. 作爲C語言中的一個參數,下劃線是什麼意思?
- 13. 什麼是SQLite中的正確AND運算符,其中語句
- 14. 什麼算法是基於C語言的Rand()?
- 15. 編程語言用於評估AST的算法是什麼?
- 16. 運算符模塊中`in`的等效運算符是什麼?
- 17. go語言IDE支持的狀態是什麼?
- 18. python中的%運算符是什麼?
- 19. 什麼是scala Stream中的#::運算符?
- 20. 什麼是JPQL中的BINARY運算符?
- 21. C中的'#'運算符是什麼?
- 22. 什麼是Java中的&=運算符
- 23. 什麼是??! Javascript中的運算符?
- 24. 什麼是C++中的static_case運算符?
- 25. :El =中的運算符是什麼?
- 26. 什麼是HTML中的「:」運算符?
- 27. Ruby中的「=〜」運算符是什麼?
- 28. 'string%variables`中的%運算符是什麼?
- 29. 什麼是C#中的「??」運算符?
- 30. 彙編語言中的「短」跳是什麼意思?
堆棧溢出需要的不僅僅是一個鏈接。我爲你修好了。 – peterSO 2013-04-10 13:28:15