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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Go语言编程从入门到精通,流程控制之switch、for、defer

發布時間:2023/12/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go语言编程从入门到精通,流程控制之switch、for、defer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Go (或Golang )是Google 在2007 年開發的一種開源編程語言,出自Robert Griesemer 、Rob Pike 和Ken Thompson 之手。2009 年11 月10 日, Google Open Source Blog 向全球發布了這款語言:公告指出Go 的主要目標是“兼具Python 等動態語句的開發速度和C 或C ++等編譯型語言的性能與安全性”。

1. switch

switch語句可以多分支條件執行。自上而下順序執行每條case語句中的表達式,執行表達式結果相同的case語句,則后續的case語句會被忽略,當case語句都不匹配時,則執行default兜底。

switch 語句可用來替代冗長的if else,switch可以讓代碼看起來更加的易于閱讀,性能也較if else更好。

網上找到了一個流程圖,很不錯,借鑒一下。

舉個例子:

7行:定義了一個需要評估的變量s;

9、11、13行case語句指定了需要與變量s比較的表達式;

如果表達式成立,則執行相應的語句;

如果表達式都不成立,則執行default后的語句。

需要注意的是,case是順序自上至下執行的。

Default也可以理解為兜底執行。

2. for語句

for是一種循環控制結構,在go語言中,for有3種形式,for反復執行代碼塊,直到發現條件不再滿足循環條件為止。

Go中,循環控制只有for一種,沒有foreach、while等。

我們做一個1到10的求和。

6行:定義了變量n初始值為0;

7行:for循環,變量i初始值為1,判斷變量i小于等于10,i++也就是i = i +1,也就是說每次變量i自加1次。

8行:n += i 也就是n = n +1。

當變量i小于10時,循環終止,跳出循環。

上面的代碼也可以換一種寫法

可以看到,雖然代碼不是太一樣,但是執行結果是完全一樣的。

當然還可以用第3種寫法

7行:聲明變量its,類型為整形數組,其中包含1到10的數字

8行:for語句的迭代變量i用來放數組循環過程中的值,直到循環結束。

這種寫法看起來更麻煩了,其實不然,這種寫法用的也是更為廣泛的一種。For range寫法通常不需要直到數組的長度,更適合遍歷大多數數據結構。

3. defer語句

Defer是一個非常有用的功能,它通常在執行清理操作時或確保操作完成后再執行defer跟著的函數。

我們還是先舉個例子,這個例子可以計算1到1000相加的和。

16行:defer fmt.Println("end")在程序最后執行了。

思考一下,如果順序有多個defer,那么執行順序是什么呢?

思考3秒鐘,考慮下執行結果。

5

4

3

2

1

執行結果如下:

和你想的一樣嗎?

可以看到,先寫的defer是最后執行的,而最后寫的defer是優先執行的。

總結

以上是生活随笔為你收集整理的Go语言编程从入门到精通,流程控制之switch、for、defer的全部內容,希望文章能夠幫你解決所遇到的問題。

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