日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

go channel 缓冲区最大限制_一起攻克面试难关:Go 面试每天一篇(第 40 天)

發布時間:2023/12/19 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 go channel 缓冲区最大限制_一起攻克面试难关:Go 面试每天一篇(第 40 天) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你好哇,歡迎來答題,一起來看下昨天題目的解析:

1.關于無緩沖和有沖突的channel,下面說法正確的是?

  • A. 無緩沖的channel是默認的緩沖為1的channel;

  • B. 無緩沖的channel和有緩沖的channel都是同步的;

  • C. 無緩沖的channel和有緩沖的channel都是非同步的;

  • D. 無緩沖的channel是同步的,而有緩沖的channel是非同步的;

參考答案及解析:D。參考文章《Go 并發 -- 信道》

2.下面代碼是否能編譯通過?如果通過,輸出什么?

1func?Foo(x?interface{})?{
2????if?x?==?nil?{
3????????fmt.Println("empty?interface")
4????????return
5????}
6????fmt.Println("non-empty?interface")
7}
8func?main()?{
9????var?x?*int?=?nil
10????Foo(x)
11}

參考答案及解析:non-empty interface 考點:interface 的內部結構,我們知道接口除了有靜態類型,還有動態類型和動態值,當且僅當動態值和動態類型都為 nil 時,接口類型值才為 nil。這里的 x 的動態類型是 *int,所以 x 不為 nil。

3.下面代碼輸出什么?

1func?main()?{
2????ch?:=?make(chan?int,?100)
3????//?A
4????go?func()?{??????????????
5????????for?i?:=?0;?i?10;?i++?{
6????????????ch? 7????????}
8????}()
9????//?B
10????go?func()?{
11????????for?{
12????????????a,?ok?:=?13????????????if?!ok?{
14????????????????fmt.Println("close")
15????????????????return
16????????????}
17????????????fmt.Println("a:?",?a)
18????????}
19????}()
20????close(ch)
21????fmt.Println("ok")
22????time.Sleep(time.Second?*?10)
23}

參考答案及解析:程序拋異常。先定義下,第一個協程為 A 協程,第二個協程為 B 協程;當 A 協程還沒起時,主協程已經將 channel 關閉了,當 A 協程往關閉的 channel 發送數據時會 panic,panic: send on closed channel。

解析若有不妥之處,歡迎在留言區交流、指正!

看下今天的題目:
1.關于select機制,下面說法正確的是?

  • A. select機制用來處理異步IO問題;

  • B. select機制最大的一條限制就是每個case語句里必須是一個IO操作;

  • C. golang在語言級別支持select關鍵字;

  • D. select關鍵字的用法與switch語句非常類似,后面要帶判斷條件;

2.下面的代碼有什么問題?

1func?Stop(stop?chan?bool)?{
2????close(stop)
3}

3.下面這段代碼存在什么問題?

1type?Param?map[string]interface{}
2
3type?Show?struct?{
4????*Param
5}
6
7func?main()?{
8????s?:=?new(Show)
9????s.Param["day"]?=?2
10}

答案以及解析會在下一篇文章中給出,鼓勵大家在留言區留下答案,抱團學習,日拱一卒,每天進步一點!

ps:看完文章如果有收獲,順手花 1s 時間幫點下文末右下方的「在看」,感激!

所有學習上的成功,都只依靠兩件事 -- 策略和堅持,而堅持本身就是最重要的策略!

推薦閱讀:

  • 一起攻克面試難關:Go 面試每天一篇(第 39 天)

  • 給Go程序加入編譯版本時間等信息

如果我的文章對你有所幫助,點贊、轉發都是一種支持!

給個[在看],是對我最大的支持

總結

以上是生活随笔為你收集整理的go channel 缓冲区最大限制_一起攻克面试难关:Go 面试每天一篇(第 40 天)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。