校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > golang switch語句的靈活寫法介紹

golang switch語句的靈活寫法介紹

熱門標簽:阿克蘇地圖標注 excel地圖標注分布數據 百度地圖標注后傳給手機 外呼系統用什么卡 涿州代理外呼系統 壽光微信地圖標注 電話機器人軟件免費 評價高的400電話辦理 外呼系統顯本地手機號

switch是很容易理解的,先來個代碼,運行起來

看看你的操作系統是什么吧

package main 
import (
    "fmt"
    "runtime"
)
 
func main() {
    fmt.Print("Go runs on ")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X.")
    case "linux":
        fmt.Println("Linux.")
    default:
        fmt.Printf("%s", os)
    }
}

runtine運行時獲取當前的操作系統,使用GOOS。還和if for之類的習慣一樣,可以在前面聲明賦值變量。我們就在這里來獲取操作系統的信息了。

os := runtime.GOOS;

{}里的case比較容易理解。操作系統是 "darwin" 就打印"OS X.";操作系統是 "linux" 就打印"Linux";其他的都直接打印系統類別。

在go語言的switch中除非以fallthrough語句結束,否則分支會自動終止。

所以修改一下上面的代碼,再運行一下:

package main 
import (
    "fmt"
    "runtime"
)
 
func main() {
    fmt.Print("Go runs on ")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X.")
    case "linux":
        fmt.Println("Linux.")
    case "windows":
        fmt.Println("win")
        fallthrough
    default:
        fmt.Printf("%s", os)
    }
}

增加了當前的系統的case選項"windows",還在這個分支使用了fallghrough。

如果你再注釋掉 fallthrough,或干脆刪除 fallthrough,再運行,就會發現,那個穿透的效果沒有了。

總結

switch 的條件從上到下的執行,當匹配成功的時候停止。如果匹配成功的這個分支是以fallthrough結束的,那么下一個緊鄰的分支也會被執行。

switch的沒有條件的用法。這其實相當于switch true一樣。每一個case選項都是bool表達式,值為true的分支就會被執行,或者執行default。

package main 
import (
    "fmt"
    "time"
)
 
func main() {
    t := time.Now()
    switch  {
    case t.Hour() > 12:
        fmt.Println("Morning was passed.")
    case t.Hour() > 17:
        fmt.Println("Afternoon was passed.")
    default:
        fmt.Println("Now too early.")
 
    }
}

補充:記Golang switch的一個“坑”

switch分支語句在各個編程語言中都很常用,能夠根據條件選中一個或多個case語句進行執行,習慣于C、C++語言編程的都知道,在C、C++中switch分支判斷條件會依次遍歷每個case,當遇到符合條件的case時,便會執行該case中的語句,直到遇到case中顯示的break語句才會終止switch流程,如果一個case中沒有顯示的break此case,程序便會執行下一個case(如果存在的話)。

對于從C、C++剛轉到Go語言的程序員來說,這里面便存在一個“坑”,本人在開發過程中也踩過這個“坑”,那便是Go語言在switch分支語句的每個case中會自動加上一個break語句,也就是說在Go語言中程序進入了一個case流程,不管程序中有沒有顯示的break此case,程序都不會繼續執行其他的case流程,而是直接退出整個switch流程,這里做一個簡單的實驗。

顯示的在每個case中添加上break語句:

package main
import "fmt"
func main() {
    var num = 10
    switch num {
    case 5:
        fmt.Println("num is 5")
        break
    case 10:
        fmt.Println("num is 10")
        break
    case 15:
        fmt.Println("num is 15")
        break
    default:
        fmt.Println("num is default branch")
    }
    return
}

程序的運行結果如下:

num is 10

下面去掉每個case中顯示的break語句,看看結果是什么呢。

package main
import "fmt"
func main() {
    var num = 10
    switch num {
    case 5:
        fmt.Println("num is 5")
    case 10:
        fmt.Println("num is 10")
    case 15:
        fmt.Println("num is 15")
    default:
        fmt.Println("num is default branch")
    }
    return
}

程序的運行結果如下:

num is 10

很明顯,在每個case語句中是否顯示的添加break語句都只會執行其中的一個分支流程,這對于想要通過break來控制每次執行case數量的程序員來說確實是一個不大不小的“坑”。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Python基礎之python循環控制語句break/continue詳解
  • C語言之初始if語句詳解
  • C語言入門篇--學習選擇,if,switch語句以及代碼塊
  • 如何用c++表驅動替換if/else和switch/case語句
  • 論一條select語句在MySQL是怎樣執行的
  • C語言中常見的幾種流程控制語句
  • 一篇文章帶你了解JavaScript-語句
  • Python實現switch/case語句
  • C語言進階教程之循環語句缺陷詳析
  • C語言控制語句之 循環
  • mybatis中sql語句CDATA標簽的用法說明
  • JavaScript中三種for循環語句的使用總結(for、for...in、for...of)
  • C 語言基礎之C 語言三大語句注意事項

標簽:梅河口 吐魯番 汕頭 欽州 雞西 重慶 銅川 蘭州

巨人網絡通訊聲明:本文標題《golang switch語句的靈活寫法介紹》,本文關鍵詞  golang,switch,語句,的,靈活,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang switch語句的靈活寫法介紹》相關的同類信息!
  • 本頁收集關于golang switch語句的靈活寫法介紹的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    午夜精品一区二区三区免费视频| 亚洲欧美aⅴ...| 国产精品77777| 国产精品不卡在线观看| 欧美中文字幕亚洲一区二区va在线| 亚洲va欧美va人人爽| 精品国产一区二区在线观看| 奇米影视7777精品一区二区| 精品国产1区2区3区| 91在线精品秘密一区二区| 亚洲二区在线观看| 国产精品天天看| 欧美一级专区免费大片| 不卡欧美aaaaa| 蜜臀av国产精品久久久久 | 日韩精品一区二区三区四区| 国内久久精品视频| 日本成人在线网站| 一区av在线播放| 亚洲欧美福利一区二区| 久久无码av三级| 欧美成va人片在线观看| 91精品婷婷国产综合久久性色| 色婷婷久久99综合精品jk白丝| 风间由美一区二区三区在线观看| 美女一区二区三区| 九色|91porny| 久久69国产一区二区蜜臀 | 91福利国产成人精品照片| 丁香天五香天堂综合| hitomi一区二区三区精品| 粉嫩av一区二区三区粉嫩| 国产成人在线视频网站| 成人网在线免费视频| 色悠悠久久综合| 日韩精品在线一区二区| 国产日韩欧美不卡| 久久精品视频一区| 51精品国自产在线| 亚洲精品一区二区三区蜜桃下载 | 中文字幕不卡一区| 亚洲欧美日韩在线不卡| 五月婷婷久久丁香| 国产69精品久久777的优势| 日本韩国精品在线| 国产日韩欧美综合一区| 中文字幕一区二区三区不卡| 五月天视频一区| 国产精品1区二区.| 欧美一区二区三区视频免费播放| 日韩免费在线观看| 一区二区三区不卡视频| 久久国产三级精品| 色噜噜狠狠色综合欧洲selulu| 日韩精品一区在线| 亚洲丶国产丶欧美一区二区三区| 美日韩一区二区| 欧美日韩一区二区三区免费看 | 亚洲男人的天堂av| 老汉av免费一区二区三区| 91蝌蚪国产九色| 国产精品国产三级国产| 色www精品视频在线观看| 中文字幕日韩一区二区| 91蝌蚪国产九色| 亚洲精品水蜜桃| 正在播放亚洲一区| 国产高清亚洲一区| 亚洲综合一区二区三区| 欧美视频日韩视频在线观看| 夜夜操天天操亚洲| 欧美日韩专区在线| 七七婷婷婷婷精品国产| 欧美精品在线一区二区三区| 午夜久久久久久| 日韩午夜在线观看视频| 美女网站色91| 亚洲精品欧美二区三区中文字幕| 国产精品自拍毛片| 国产精品久久久久桃色tv| 欧美性一级生活| 狠狠色丁香久久婷婷综合丁香| 国产欧美精品一区二区三区四区| 成人黄色一级视频| 亚洲一区在线免费观看| 3d动漫精品啪啪| 91年精品国产| 成人免费视频caoporn| 日韩激情视频在线观看| 18成人在线观看| 国产精品美女久久久久久2018| 精品乱码亚洲一区二区不卡| 91美女在线看| 91黄色免费网站| 91福利视频网站| 在线观看亚洲成人| 欧美日韩三级一区| 一本大道av一区二区在线播放| 成人高清免费观看| 成人一二三区视频| 久久精品国产久精国产爱| 九一九一国产精品| 成人国产精品免费| 亚洲激情在线激情| 国产精品久久久久久一区二区三区 | 成人免费看视频| 国产高清亚洲一区| 岛国一区二区三区| 欧美a级一区二区| 偷窥少妇高潮呻吟av久久免费| 亚洲欧洲另类国产综合| 久久亚洲欧美国产精品乐播| 精品国产成人在线影院| 精品国产乱子伦一区| 日韩一级欧美一级| 国产日韩欧美制服另类| 国产精品看片你懂得| 1区2区3区精品视频| 亚洲一区免费观看| 日韩高清一区二区| 成人小视频免费观看| 色吊一区二区三区| 日韩免费性生活视频播放| 久久精品日韩一区二区三区| 中文字幕一区二区三区四区不卡| 亚洲精品日产精品乱码不卡| 亚洲成人中文在线| 裸体歌舞表演一区二区| 成人h版在线观看| 制服丝袜日韩国产| 国产视频一区不卡| 婷婷开心激情综合| 91浏览器入口在线观看| 日韩美女一区二区三区| 亚洲欧美另类在线| 国产精品自拍在线| 色菇凉天天综合网| 中文字幕第一区二区| 久久er精品视频| 欧美精品日韩综合在线| 亚洲三级电影全部在线观看高清| 亚洲高清不卡在线| 成人毛片在线观看| xnxx国产精品| 国产精品中文欧美| 日韩欧美视频一区| 日韩精品久久理论片| 欧美美女一区二区三区| 亚洲视频一区在线观看| 国产91在线看| 久久久久久久综合| 国产乱理伦片在线观看夜一区| 欧美一级一区二区| 日韩精品五月天| 欧美一区二区三区日韩| 蜜桃av一区二区在线观看| 欧美性受xxxx| 天堂精品中文字幕在线| 3d动漫精品啪啪1区2区免费 | 日韩欧美123| 国产乱码字幕精品高清av| 中文字幕av一区二区三区高| 91视频精品在这里| 国产欧美日韩另类视频免费观看 | 老司机精品视频导航| 精品国产一区二区三区久久久蜜月| 视频一区中文字幕国产| 欧美一级高清片| 成人性生交大片免费看中文| 亚洲精品国久久99热| 欧美日韩中文一区| 国产一本一道久久香蕉| 中文字幕乱码一区二区免费| 日本高清免费不卡视频| 免费在线视频一区| 中文字幕成人在线观看| 欧美精品在线一区二区三区| 风间由美一区二区av101 | 久久久无码精品亚洲日韩按摩| 一本色道久久综合亚洲aⅴ蜜桃| 日本视频一区二区三区| 亚洲国产精品黑人久久久| 91精品国产aⅴ一区二区| 欧美在线一区二区| 色综合久久中文综合久久牛| 99免费精品视频| 国产精一品亚洲二区在线视频| 日韩成人一区二区| 一区二区三区毛片| 亚洲欧美日韩久久精品| 国产精品全国免费观看高清| 精品乱人伦一区二区三区| 在线精品亚洲一区二区不卡| 美女在线一区二区| 亚洲成av人片一区二区梦乃| 亚洲精品免费电影| 中文欧美字幕免费| 日韩码欧中文字| 一区二区久久久久久| 一二三区精品福利视频|