亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

解鎖即可觀看《Go開發工程師》完整課程視頻

Go開發工程師

未來3-5年企業高性能項目不可替代的語言,從基礎到項目實戰再到重構,真正從入門到精通

【第1周】Go基礎知識入門
【第2周】容器,go編程思想
【第3周】Go并發編程和工程管理
【第4周】從0開始理解rpc和grpc
【第5周】grpc和protobuf進階
【第6周】 yapi文檔管理、gorm詳解
【第7周】gin快速入門
【第8周】用戶服務的grpc服務
【第9周】用戶服務的web服務
【第10周】服務注冊/發現、配置中心、負載均衡
【第11周】商品微服務的grpc服務
【第12周】 商品微服務的gin層和oss圖片服務
【第13周】庫存服務和分布式鎖
【第14周】訂單和購物車微服務
【第15周】 支付寶支付、用戶操作微服務、前后端聯調
【第16周】elasticsearch實現搜索微服務
【第17周】 分布式理論基礎、分布式事務解決方案
【第18周】 學習rocketmq實現冪等性機制等
【第19周】鏈路追蹤、限流、熔斷、降級
【第20周】api網關、部署
【第21周】開發規范和go基礎擴展
【第22周】設計模式和單元測試
【第23周】protoc插件開發、cobra命令行
【第24周】log日志包設計
【第25周】ast代碼生成工具開發
【第26周】三層代碼結構
【第27周】grpc服務封裝更方便的rpc服務
【第28周】深入grpc的服務注冊、負載均衡原理
【第29周】基于gin封裝api服務
【第30周】可觀測的終極解決方案
【第31周】系統監控核心
【第32周】用戶、商品服務重構
【第33周】訂單、庫存等服務重構
【第33+周】訂單服務重構、wire進行ioc控制
【第34周】通過k8s部署服務
【第34+周】devops和k8s
章節
問答
課簽
筆記
評論
占位
占位

Go語言-通道的更多種類

    我們在上一節所說的通道,實際上只是Go語言中的通道的一種。它被稱為帶緩沖的通道,或簡稱為緩沖通道。
  
    通道有帶緩沖和非緩沖之分。我們已經說過,緩沖通道中可以緩存N個數據。我們在初始化一個通道值的時候必須指定這個N。相對的,非緩沖通道不會緩存任何數據。發送方在向通道值發送數據的時候會立即被阻塞,直到有某一個接收方已從該通道值中接收了這條數據。非緩沖的通道值的初始化方法如下:

make(chan int, 0)

    注意,在這里,給予make函數的第二個參數值是0。
  
    除了上述分類方法,我們還可以以數據在通道中的傳輸方向為依據來劃分通道。默認情況下,通道都是雙向的,即雙向通道。如果數據只能在通道中單向傳輸,那么該通道就被稱作單向通道。我們在初始化一個通道值的時候不能指定它為單向。但是,在編寫類型聲明的時候,我們卻是可以這樣做的。例如:

type Receiver <-chan int 

    類型Receiver代表了一個只可從中接收數據的單向通道類型。這樣的通道也被稱為接收通道。在關鍵字chan左邊的接收操作符<-形象地表示出了數據的流向。相對應的,如果我們想聲明一個發送通道類型,那么應該這樣:

type Sender chan<- int 

    這次<-被放在了chan的右邊,并且“箭頭”直指“通道”。想必不用多說你也能明白了。我們可以把一個雙向通道值賦予上述類型的變量,就像這樣:

var myChannel = make(chan int, 3)
var sender Sender = myChannel
var receiver Receiver = myChannel  

    但是,反之則是不行的。像下面這樣的代碼是通不過編譯的:

var myChannel1 chan int = sender     

    單向通道的主要作用是約束程序對通道值的使用方式。比如,我們調用一個函數時給予它一個發送通道作為參數,以此來約束它只能向該通道發送數據。又比如,一個函數將一個接收通道作為結果返回,以此來約束調用該函數的代碼只能從這個通道中接收數據。這屬于API設計的范疇。因此我們在這里僅了解一下即可。

 

任務

請在命令源碼文件index.go的第 13 行的內層圓括號中填入一個正整數,使程序打印到標準輸出上的內容為:

Received! 6
Sent!

 

?不會了怎么辦

在第13行,應該填入0。請回顧“知識要點”中加粗的那一句話。請填入大于零的整數、再次運行程序,并體會其中的玄機。

||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態

舉報

0/150
提交
取消
全部 精華 我要發布
全部 我要發布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?