最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言流程控制語句

 更新時(shí)間:2022年07月12日 14:12:21   作者:奮斗的大橙子  
這篇文章介紹了Go語言流程控制語句的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.條件語句

幾個(gè)注意點(diǎn)和C#不一樣的。

if a < 5 {
       return 0
} else {
       return 1
}

① 條件語句不需要使用括號(hào)將條件包含起來 a<5 ,C#必須有()

②無論語句體內(nèi)有幾條語句,花括號(hào){}都是必須存在的;C#如果只有一條語句可以省略{}

③左花括號(hào){必須與if或者else處于同一行 C#的{}是換行的

④在有返回值的函數(shù)中,不允許將“最終的”return語句包含在if...else...結(jié)構(gòu)中,

否則會(huì)編譯失敗(這句話錯(cuò)誤的 1.1版Go語言和之后的新版已經(jīng)支持if else條件語句直接return返回值。),所以上面的demo是可以編譯通過的。

2.選擇語句

①條件表達(dá)式不限制為常量或者整數(shù)

②單個(gè)case中,可以出現(xiàn)多個(gè)結(jié)果選項(xiàng)

③Go語言不需要用break來明確退出一個(gè)case;C#需要在每一個(gè)case結(jié)束之后加上break

④增加了fallthrough方法 主要用于多個(gè)相同case合并,Go就相當(dāng)于默認(rèn)加了break;

和C#正好相反

switch i {
case 0:
   fmt.Printf("0")
case 1:
   fmt.Printf("1")
case 2:
   fallthrough
case 3:
   fmt.Printf("3")
case 4, 5, 6:
   fmt.Printf("4, 5, 6")
default:
   fmt.Printf("Default")
}

如上例子,case 2中有語句fallthrough,那么當(dāng)i=2時(shí)候,執(zhí)行完fallthrough會(huì)執(zhí)行case3,由此打印出了“3”

⑤可以不設(shè)定switch之后的條件表達(dá)式,在此種情況下,整個(gè)switch結(jié)構(gòu)與多個(gè)if...else... 的邏輯作用等同。如下代碼

switch {
case 0 <= Num && Num <= 3:
   fmt.Printf("0-3")
case 4 <= Num && Num <= 6:
   fmt.Printf("4-6")
case 7 <= Num && Num <= 9:
   fmt.Printf("7-9")
}

3.循環(huán)語句

Go語言中的循環(huán)語句只支持for關(guān)鍵字,而不支持while和do-while結(jié)構(gòu)。

①for后面的條件表達(dá)式不需要用圓括號(hào)()包含起來

模擬while語句:直接用for后面不加條件

sum := 0
for {
    sum++
    if sum > 100 {
       break
    }
}

②for循環(huán)中條件表達(dá)式中也支持多重賦值

a := []int{1, 2, 3, 4, 5, 6}
for i, j := 0, len(a) – 1; i < j; i, j = i + 1, j – 1 {
      a[i], a[j] = a[j], a[i]
}

如上代碼:

a) 初始值 i=0 ,j= len(a) – 1

b)循環(huán)的條件是 i < j

c)每執(zhí)行一次 i+1 ,j-1

循環(huán)體: a[i], a[j] = a[j], a[i]

Go語言中的for循環(huán)與C語言一樣,都允許在循環(huán)條件中定義和初始化變量,唯一的區(qū)別是,Go語言不支持以逗號(hào)為間隔的多個(gè)賦值語句,必須使用平行賦值的方式來初始化多個(gè)變量。

③Go語言的for循環(huán)同樣支持continue和break來控制循環(huán),但是它提供了一個(gè)更高級(jí)的break,可以選擇中斷哪一個(gè)循環(huán), 如下代碼:

break語句終止的是JLoop標(biāo)簽處的外層循環(huán)

for j := 0; j < 5; j++ {
    for i := 0; i < 10; i++ {
        if i > 5 {
             break JLoop
         }
     fmt.Println(i)
  }
}
JLoop: //Do Something

如果是C#,只能跳出第一層循環(huán),而不能直接跳出第二層循環(huán),這也是區(qū)別的地方之一

4.跳轉(zhuǎn)語句

Go語言支持goto語句

func myfunc() {
  i := 0
  HERE:
   fmt.Println(i)
  i++
  if i < 10 {
    goto HERE
  }
}

for…range 是什么,就相當(dāng)于原來的foreach中迭代 k,v結(jié)構(gòu)。

for index, value := range mySlice {
  fmt.Println("index: " + index)
  fmt.Println("value: " + value)
}

當(dāng)?shù)衅瑫r(shí),關(guān)鍵字range 會(huì)返回兩個(gè)值。第一個(gè)值是當(dāng)前迭代到的索引位置,第二個(gè)

值是該位置對(duì)應(yīng)元素值的一份副本

這張圖比較好的說明了range的返回值,重點(diǎn)在于值是副本

到此這篇關(guān)于Go語言流程控制語句的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • GO語言中通道和sync包的使用教程分享

    GO語言中通道和sync包的使用教程分享

    這篇文章主要為大家詳細(xì)介紹了Go語言中通道和sync包的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下
    2023-02-02
  • go 語言字符類型 byte 與 rune案例詳解

    go 語言字符類型 byte 與 rune案例詳解

    這篇文章主要介紹了go 語言字符類型 byte 與 rune案例詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 一文初探?Goroutine?與?channel基本用法

    一文初探?Goroutine?與?channel基本用法

    這篇文章主要為大家介紹了一文初探?Goroutine?與?channel基本用法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • go:gin輸出日志文件方式

    go:gin輸出日志文件方式

    這篇文章主要介紹了go:gin輸出日志文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • go實(shí)現(xiàn)整型的二進(jìn)制轉(zhuǎn)化的方法

    go實(shí)現(xiàn)整型的二進(jìn)制轉(zhuǎn)化的方法

    這篇文章主要介紹了go實(shí)現(xiàn)整型的二進(jìn)制轉(zhuǎn)化的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • 在Go中使用jwt的教程詳解

    在Go中使用jwt的教程詳解

    JWT (JSON Web Tokens) 是一種基于 JSON 格式的輕量級(jí)身份驗(yàn)證和授權(quán)方案,用于在各方之間以JSON方式安全地傳輸信息,本文給大家詳細(xì)介紹了在Go中使用jwt的教程,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • 從入門到精通:Go語言XML數(shù)據(jù)解析指南

    從入門到精通:Go語言XML數(shù)據(jù)解析指南

    Go語言的XML包提供了強(qiáng)大的數(shù)據(jù)解析功能,讓你輕松處理各種XML格式的數(shù)據(jù),這個(gè)指南將帶你深入了解如何使用Go語言的XML包,快速上手XML數(shù)據(jù)解析,準(zhǔn)備好開啟XML解析之旅了嗎?Let's?Go!
    2024-03-03
  • go語言切片slice使用細(xì)節(jié)和注意事項(xiàng)整理大全

    go語言切片slice使用細(xì)節(jié)和注意事項(xiàng)整理大全

    這篇文章主要給大家介紹了關(guān)于go語言切片slice使用細(xì)節(jié)和注意事項(xiàng)整理的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 如何在golang中檢查文件是否存在

    如何在golang中檢查文件是否存在

    如果你用的是?Python,可通過?os.path.exists?這樣的標(biāo)準(zhǔn)庫函數(shù)實(shí)現(xiàn),遺憾的是,Go?標(biāo)準(zhǔn)庫沒有提供這樣直接的函數(shù),所以下面我們就來了解下如何使用GO語言能實(shí)現(xiàn)檢查文件是否存在呢
    2024-02-02
  • Golang干貨分享之利用AST實(shí)現(xiàn)AOP功能

    Golang干貨分享之利用AST實(shí)現(xiàn)AOP功能

    本文主要是一個(gè)純干貨分享,主要介紹了Golang如何利用AST實(shí)現(xiàn)AOP功能,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04

最新評(píng)論

纳雍县| 石狮市| 白玉县| 滦南县| 镇赉县| 武安市| 疏勒县| 宜川县| 大方县| 冷水江市| 八宿县| 柞水县| 湾仔区| 富平县| 湘乡市| 福州市| 高要市| 博兴县| 襄汾县| 赤水市| 淳安县| 墨玉县| 梁山县| 呼图壁县| 阿克苏市| 扶风县| 邹城市| 长治县| 都兰县| 福清市| 清镇市| 定襄县| 马山县| 玛多县| 五原县| 曲阜市| 扶绥县| 伊宁县| 枣强县| 上虞市| 松滋市|