欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

go中switch語(yǔ)句的用法詳解

 更新時(shí)間:2023年09月05日 10:41:36   作者:小萬(wàn)哥  
在Go中的switch語(yǔ)句類(lèi)似于C、C++、Java、JavaScript和PHP中的switch語(yǔ)句,不同之處在于它只執(zhí)行匹配的case,因此不需要使用break語(yǔ)句,下面我們就一起來(lái)學(xué)習(xí)一下switch語(yǔ)句的具體使用吧

switch語(yǔ)句

使用switch語(yǔ)句來(lái)選擇要執(zhí)行的多個(gè)代碼塊中的一個(gè)。

在Go中的switch語(yǔ)句類(lèi)似于C、C++、Java、JavaScript和PHP中的switch語(yǔ)句。不同之處在于它只執(zhí)行匹配的case,因此不需要使用break語(yǔ)句。

單一case的switch語(yǔ)法

switch 表達(dá)式 {
case x:
   // 代碼塊
case y:
   // 代碼塊
case z:
   // ...
default:
   // 代碼塊
}

它的工作方式如下:

  • 表達(dá)式被評(píng)估一次。
  • switch表達(dá)式的值與每個(gè)case的值進(jìn)行比較。
  • 如果匹配,則執(zhí)行相關(guān)的代碼塊。
  • 默認(rèn)關(guān)鍵字是可選的。它指定了如果沒(méi)有匹配的case時(shí)要運(yùn)行的一些代碼。

單一case的switch示例

下面的示例使用星期幾的數(shù)字來(lái)計(jì)算星期幾的名稱(chēng):

package main
import (
   "fmt"
)
func main() {
   day := 4
   switch day {
   case 1:
      fmt.Println("星期一")
   case 2:
      fmt.Println("星期二")
   case 3:
      fmt.Println("星期三")
   case 4:
      fmt.Println("星期四")
   case 5:
      fmt.Println("星期五")
   case 6:
      fmt.Println("星期六")
   case 7:
      fmt.Println("星期日")
   }
}

結(jié)果:

星期四

default關(guān)鍵字

default關(guān)鍵字指定了在沒(méi)有匹配的case時(shí)要運(yùn)行的一些代碼:

package main
import (
   "fmt"
)
func main() {
   day := 8
   switch day {
   case 1:
      fmt.Println("星期一")
   case 2:
      fmt.Println("星期二")
   case 3:
      fmt.Println("星期三")
   case 4:
      fmt.Println("星期四")
   case 5:
      fmt.Println("星期五")
   case 6:
      fmt.Println("星期六")
   case 7:
      fmt.Println("星期日")
   default:
      fmt.Println("不是工作日")
   }
}

結(jié)果:

不是工作日

所有case值應(yīng)與switch表達(dá)式具有相同的類(lèi)型。否則,編譯器將引發(fā)錯(cuò)誤。

package main
import (
   "fmt"
)
func main() {
   a := 3
   switch a {
   case 1:
      fmt.Println("a是一")
   case "b":
      fmt.Println("a是b")
   }
}

結(jié)果:

./prog.go:11:2: 無(wú)法將類(lèi)型為untyped string的"b"用作int類(lèi)型

多個(gè)值的switch語(yǔ)句

在switch語(yǔ)句中,每個(gè)case可以有多個(gè)值:

語(yǔ)法

switch 表達(dá)式 {
case x, y:
   // 代碼塊(如果表達(dá)式的值是x或y)
case v, w:
   // 代碼塊(如果表達(dá)式的值是v或w)
case z:
   // ...
default:
   // 代碼塊(如果表達(dá)式在任何case中都沒(méi)有找到)
}

多個(gè)值的switch示例

下面的示例使用星期幾的數(shù)字返回不同的文本:

package main
import (
   "fmt"
)
func main() {
   day := 5
   switch day {
   case 1, 3, 5:
      fmt.Println("奇數(shù)工作日")
   case 2, 4:
      fmt.Println("偶數(shù)工作日")
   case 6, 7:
      fmt.Println("周末")
   default:
      fmt.Println("無(wú)效的日期編號(hào)")
   }
}

結(jié)果:

奇數(shù)工作日

到此這篇關(guān)于go中switch語(yǔ)句的用法詳解的文章就介紹到這了,更多相關(guān)go switch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程

    基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程

    Go 是一個(gè)開(kāi)源的編程語(yǔ)言,它能讓構(gòu)造簡(jiǎn)單、可靠且高效的軟件變得容易,本文給大家介紹了基于Go語(yǔ)言搭建靜態(tài)文件服務(wù)器的詳細(xì)教程,文中通過(guò)圖文和代碼講解的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Go語(yǔ)言開(kāi)發(fā)環(huán)境搭建與初探(Windows平臺(tái)下)

    Go語(yǔ)言開(kāi)發(fā)環(huán)境搭建與初探(Windows平臺(tái)下)

    Go是Google開(kāi)發(fā)的一種編譯型,並發(fā)型,并具有垃圾回收功能的編程語(yǔ)言,可能很多人想學(xué)習(xí)go語(yǔ)言,那么首先就要了解go語(yǔ)言的環(huán)境配置方法
    2014-10-10
  • Go語(yǔ)言中一些不常見(jiàn)的命令參數(shù)詳解

    Go語(yǔ)言中一些不常見(jiàn)的命令參數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言中一些不常見(jiàn)的命令參數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Golang中的select語(yǔ)句及其應(yīng)用實(shí)例

    Golang中的select語(yǔ)句及其應(yīng)用實(shí)例

    本文將介紹Golang中的select語(yǔ)句的使用方法和作用,并通過(guò)代碼示例展示其在并發(fā)編程中的實(shí)際應(yīng)用,此外,還提供了一些與select相關(guān)的面試題,幫助讀者更好地理解和應(yīng)用select語(yǔ)句
    2023-12-12
  • golang sql連接池的實(shí)現(xiàn)方法詳解

    golang sql連接池的實(shí)現(xiàn)方法詳解

    database/sql是golang的標(biāo)準(zhǔn)庫(kù)之一,它提供了一系列接口方法,用于訪(fǎng)問(wèn)關(guān)系數(shù)據(jù)庫(kù)。下面這篇文章主要給大家介紹了關(guān)于golang sql連接池用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧
    2018-09-09
  • 詳解Go語(yǔ)言中自定義結(jié)構(gòu)體能作為map的key嗎

    詳解Go語(yǔ)言中自定義結(jié)構(gòu)體能作為map的key嗎

    在Go中,引用類(lèi)型具有動(dòng)態(tài)的特性,可能會(huì)被修改或指向新的數(shù)據(jù),這就引發(fā)了一個(gè)問(wèn)題—能否將包含引用類(lèi)型的自定義結(jié)構(gòu)體作為map的鍵呢,本文就來(lái)和大家想想講講
    2023-06-06
  • Go遍歷struct,map,slice的實(shí)現(xiàn)

    Go遍歷struct,map,slice的實(shí)現(xiàn)

    本文主要介紹了Go語(yǔ)言遍歷結(jié)構(gòu)體、切片和字典的方法,對(duì)大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • golang 實(shí)現(xiàn)tcp server端和client端,并計(jì)算RTT時(shí)間操作

    golang 實(shí)現(xiàn)tcp server端和client端,并計(jì)算RTT時(shí)間操作

    這篇文章主要介紹了golang 實(shí)現(xiàn)tcp server端和client端,并計(jì)算RTT時(shí)間操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 在golang中使用cel的用法詳解

    在golang中使用cel的用法詳解

    CEL?是一種非圖靈完備的表達(dá)式語(yǔ)言?,旨在快速、可移植且執(zhí)行安全,CEL?可以單獨(dú)使用,也可以嵌入到其他的產(chǎn)品中,本文將給大家介紹一下golang中如何使用cel,需要的朋友可以參考下
    2023-11-11
  • golang并發(fā)編程中Goroutine 協(xié)程的實(shí)現(xiàn)

    golang并發(fā)編程中Goroutine 協(xié)程的實(shí)現(xiàn)

    Go語(yǔ)言中的協(xié)程是一種輕量級(jí)線(xiàn)程,通過(guò)在函數(shù)前加go關(guān)鍵字來(lái)并發(fā)執(zhí)行,具有動(dòng)態(tài)棧、快速啟動(dòng)和低內(nèi)存使用等特點(diǎn),本文就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-10-10

最新評(píng)論