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

解鎖即可觀看《Go開(kāi)發(fā)工程師》完整課程視頻

Go開(kāi)發(fā)工程師

未來(lái)3-5年企業(yè)高性能項(xiàng)目不可替代的語(yǔ)言,從基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)再到重構(gòu),真正從入門到精通

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

Go語(yǔ)言-switch語(yǔ)句

    與串聯(lián)的if語(yǔ)句類似,switch語(yǔ)句提供了一個(gè)多分支條件執(zhí)行的方法。不過(guò)在這里用一個(gè)專有名詞來(lái)代表分支——case。每一個(gè)case可以攜帶一個(gè)表達(dá)式或一個(gè)類型說(shuō)明符。前者又可被簡(jiǎn)稱為case表達(dá)式。因此,Go語(yǔ)言的switch語(yǔ)句又分為表達(dá)式switch語(yǔ)句和類型switch語(yǔ)句。
  
    先說(shuō)表達(dá)式switch語(yǔ)句。在此類switch語(yǔ)句中,每個(gè)case會(huì)攜帶一個(gè)表達(dá)式。與if語(yǔ)句中的條件表達(dá)式不同,這里的case表達(dá)式的結(jié)果類型并不一定是bool。不過(guò),它們的結(jié)果類型需要與switch表達(dá)式的結(jié)果類型一致。所謂switch表達(dá)式是指switch語(yǔ)句中要被判定的那個(gè)表達(dá)式。switch語(yǔ)句會(huì)依據(jù)該表達(dá)式的結(jié)果與各個(gè)case表達(dá)式的結(jié)果是否相同來(lái)決定執(zhí)行哪個(gè)分支。請(qǐng)看下面的示例:

var name string
// 省略若干條語(yǔ)句
switch name {
case "Golang":
    fmt.Println("A programming language from Google.")
case "Rust":
    fmt.Println("A programming language from Mozilla.")
default:
    fmt.Println("Unknown!")
}  

    可以看到,在上述switch語(yǔ)句中,name充當(dāng)了switch表達(dá)式,而"Go""Rust"充當(dāng)了case表達(dá)式。它們的結(jié)果類型是一致的,都是string。順便說(shuō)一句,可以有只包含一個(gè)字面量或標(biāo)識(shí)符的表達(dá)式。它們是最簡(jiǎn)單的表達(dá)式,屬于基本表達(dá)式的一種。
  
    請(qǐng)大家注意switch語(yǔ)句的寫(xiě)法。switch表達(dá)式必須緊隨switch關(guān)鍵字出現(xiàn)。在后面的花括號(hào)中,一個(gè)關(guān)鍵字case、case表達(dá)式、冒號(hào)以及后跟的若干條語(yǔ)句組成為一條case語(yǔ)句。在switch語(yǔ)句中可以有若干條case語(yǔ)句。Go語(yǔ)言會(huì)依照從上至下的順序?qū)γ恳粭lcase語(yǔ)句中case表達(dá)式進(jìn)行求值。只要被發(fā)現(xiàn)其表達(dá)式與switch表達(dá)式的結(jié)果相同,該case語(yǔ)句就會(huì)被選中。它包含的那些語(yǔ)句就會(huì)被執(zhí)行。而其余的case語(yǔ)句則會(huì)被忽略。
  
    switch語(yǔ)句中還可以存在一個(gè)特殊的case——default case。顧名思義,當(dāng)沒(méi)有一個(gè)常規(guī)的case被選中的時(shí)候,default case就會(huì)被選中。上面示例中就存在一個(gè)default case。它由關(guān)鍵字default、冒號(hào)和后跟的一條語(yǔ)句組成。實(shí)際上,default case不一定被追加在最后。它可以是第一個(gè)case,或者出現(xiàn)在任意順位上。
  
    另外,與if語(yǔ)句一樣,switch語(yǔ)句還可以包含初始化子句,且其出現(xiàn)位置和寫(xiě)法也如出一轍。如:

names := []string{"Golang", "Java", "Rust", "C"}
switch name := names[0]; name {
case "Golang":
    fmt.Println("A programming language from Google.")
case "Rust":
    fmt.Println("A programming language from Mozilla.")
default:
    fmt.Println("Unknown!")
}

    好了,我們已經(jīng)對(duì)switch語(yǔ)句的一般形式——表達(dá)式switch語(yǔ)句——有所了解了。下面我們來(lái)說(shuō)說(shuō)類型switch語(yǔ)句。它與一般形式有兩點(diǎn)差別。第一點(diǎn),緊隨case關(guān)鍵字的不是表達(dá)式,而是類型說(shuō)明符。類型說(shuō)明符由若干個(gè)類型字面量組成,且多個(gè)類型字面量之間由英文逗號(hào)分隔。第二點(diǎn),它的switch表達(dá)式是非常特殊的。這種特殊的表達(dá)式也起到了類型斷言的作用,但其表現(xiàn)形式很特殊,如:v.(type),其中v必須代表一個(gè)接口類型的值。注意,該類表達(dá)式只能出現(xiàn)在類型switch語(yǔ)句中,且只能充當(dāng)switch表達(dá)式。一個(gè)類型switch語(yǔ)句的示例如下:

v := 11
switch i := interface{}(v).(type) {
case int, int8, int16, int32, int64:
    fmt.Printf("A signed integer: %d. The type is %T. \n", i, i)
case uint, uint8, uint16, uint32, uint64:
    fmt.Printf("A unsigned integer: %d. The type is %T. \n", i, i)
default:
    fmt.Println("Unknown!")
}

    請(qǐng)注意,我們?cè)谶@里把switch表達(dá)式的結(jié)果賦給了一個(gè)變量。如此一來(lái),我們就可以在該switch語(yǔ)句中使用這個(gè)結(jié)果了。這段代碼被執(zhí)行后,標(biāo)準(zhǔn)輸出上會(huì)打印出A signed integer: 11. The type is int.。
   
    最后,我們來(lái)說(shuō)一下fallthrough。它既是一個(gè)關(guān)鍵字,又可以代表一條語(yǔ)句。fallthrough語(yǔ)句可被包含在表達(dá)式switch語(yǔ)句中的case語(yǔ)句中。它的作用是使控制權(quán)流轉(zhuǎn)到下一個(gè)case。不過(guò)要注意,fallthrough語(yǔ)句僅能作為case語(yǔ)句中的最后一條語(yǔ)句出現(xiàn)。并且,包含它的case語(yǔ)句不能是其所屬switch語(yǔ)句的最后一條case語(yǔ)句。

任務(wù)

請(qǐng)把命令源碼文件index.go的第 10、11 行的“?”都替換為相應(yīng)的表達(dá)式,以保證該文件每次被運(yùn)行后都會(huì)在標(biāo)準(zhǔn)輸出上打印出Case A。注意,第11行的“?”只能被替換成一個(gè)字面量。提示一下,表達(dá)式rand.Intn(4)結(jié)果會(huì)是一個(gè)范圍在[0,4)的隨機(jī)數(shù)。

?不會(huì)了怎么辦

第10的“?”可以被替換為%2,第11行的“?”可以被替換為int32rune。

||

提問(wèn)題

寫(xiě)筆記

公開(kāi)筆記
提交
||

請(qǐng)驗(yàn)證,完成請(qǐng)求

由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求

加群二維碼

打開(kāi)微信掃碼自動(dòng)綁定

您還未綁定服務(wù)號(hào)

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問(wèn)題答復(fù)提醒
  • · 賬號(hào)支付安全提醒

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

使用 Ctrl+D 可將課程添加到書(shū)簽

邀請(qǐng)您關(guān)注公眾號(hào)
關(guān)注后,及時(shí)獲悉本課程動(dòng)態(tài)

舉報(bào)

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

手記推薦

更多

本次提問(wèn)將花費(fèi)2個(gè)積分

你的積分不足,無(wú)法發(fā)表

為什么扣積分?

本次提問(wèn)將花費(fèi)2個(gè)積分

繼續(xù)發(fā)表請(qǐng)點(diǎn)擊 "確定"

為什么扣積分?