gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

go語言中goto怎么用

在go語言中,goto語句用于無條件跳轉,可以無條件地轉移到程序中指定的行;它通過標簽進行代碼間的無條件跳轉。goto后接一個標簽,這個標簽的意義是告訴Go程序下一步要執行哪行的代碼,語法“goto 標簽;… …標簽: 表達式;”。goto打破原有代碼執行順序,直接跳轉到指定行執行代碼;goto語句通常與條件語句配合使用,可用來實現條件轉移、構成循環、跳出循環體等功能。

go語言中goto怎么用

php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

go語言中的goto語句

goto 顧言思義,是跳轉的意思。

Go 語言的 goto 語句可以無條件地轉移到程序中指定的行,通過標簽進行代碼間的無條件跳轉,同時 goto 語句在快速跳出循環、避免重復退出上也有一定的幫助,使用 goto 語句能簡化一些代碼的實現過程。

goto語句的語法

goto 后接一個標簽,這個標簽的意義是告訴 Go程序下一步要執行哪行的代碼。

所以這個標簽如何放置,放置在哪里,是 goto 里最需要注意的。

goto 標簽; ... ... 標簽: 表達式;
登錄后復制

goto 語句流程圖如下:

go語言中goto怎么用

goto語句的使用

  • goto 可以打破原有代碼執行順序,直接跳轉到某一行執行代碼。

import "fmt"  func main() {      goto flag     fmt.Println("B") flag:     fmt.Println("A")  }
登錄后復制

執行結果,并不會輸出 B ,而只會輸出 A

A
登錄后復制

  • goto 語句通常與條件語句配合使用。可用來實現條件轉移, 構成循環,跳出循環體等功能。

這邊舉一個例子,用 goto 的方式來實現一個打印 1到5 的循環。

import "fmt"  func main() {     i := 1 flag:     if i <= 5 {         fmt.Println(i)         i++         goto flag     } }
登錄后復制

輸出如下

go語言中goto怎么用

再舉個例子,使用 goto 實現 類型 break 的效果。

import "fmt"  func main() {     i := 1     for {         if i > 5 {             goto flag         }         fmt.Println(i)         i++     } flag: }
登錄后復制

輸出如下

go語言中goto怎么用

最后再舉個例子,使用 goto 實現 類型 continue的效果,打印 1到10 的所有偶數。

import "fmt"  func main() {     i := 1 flag:     for i <= 10 {         if i%2 == 1 {             i++             goto flag         }         fmt.Println(i)         i++     } }
登錄后復制

輸出如下

go語言中goto怎么用

使用 goto 退出多層循環

下面這段代碼在滿足條件時,需要連續退出兩層循環,使用傳統的編碼方式如下:

package main import "fmt" func main() {     var breakAgain bool     // 外循環     for x := 0; x < 10; x++ {         // 內循環         for y := 0; y < 10; y++ {             // 滿足某個條件時, 退出循環             if y == 2 {                 // 設置退出標記                 breakAgain = true                 // 退出本次循環                 break             }         }         // 根據標記, 還需要退出一次循環         if breakAgain {                 break         }     }     fmt.Println("done") }
登錄后復制

代碼說明如下:

  • 第 10 行,構建外循環。

  • 第 13 行,構建內循環。

  • 第 16 行,當 y==2 時需要退出所有的 for 循環。

  • 第 19 行,默認情況下循環只能一層一層退出,為此就需要設置一個狀態變量 breakAgain,需要退出時,設置這個變量為 true。

  • 第 22 行,使用 break 退出當前循環,執行后,代碼調轉到第 28 行。

  • 第 28 行,退出一層循環后,根據 breakAgain 變量判斷是否需要再次退出外層循環。

  • 第 34 行,退出所有循環后,打印 done。

將上面的代碼使用Go語言的 goto 語句進行優化:

package main import "fmt" func main() {     for x := 0; x < 10; x++ {         for y := 0; y < 10; y++ {             if y == 2 {                 // 跳轉到標簽                 goto breakHere             }         }     }     // 手動返回, 避免執行進入標簽     return     // 標簽 breakHere:     fmt.Println("done") }
登錄后復制

代碼說明如下:

  • 第 13 行,使用 goto 語句跳轉到指明的標簽處,標簽在第 23 行定義。

  • 第 20 行,標簽只能被 goto 使用,但不影響代碼執行流程,此處如果不手動返回,在不滿足條件時,也會執行第 24 行代碼。

  • 第 23 行,定義 breakHere 標簽。

使用 goto 語句后,無須額外的變量就可以快速退出所有的循環。

使用 goto 集中處理錯誤

多處錯誤處理存在代碼重復時是非常棘手的,例如:

err := firstCheckError() if err != nil {     fmt.Println(err)     exitProcess()     return } err = secondCheckError() if err != nil {     fmt.Println(err)     exitProcess()     return } fmt.Println("done")
登錄后復制

代碼說明如下:

  • 第 1 行,執行某邏輯,返回錯誤。

  • 第 2~6 行,如果發生錯誤,打印錯誤退出進程。

  • 第 8 行,執行某邏輯,返回錯誤。

  • 第 10~14 行,發生錯誤后退出流程。

  • 第 16 行,沒有任何錯誤,打印完成。

在上面代碼中,有一部分都是重復的錯誤處理代碼,如果后期在這些代碼中添加

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
福利在线一区二区三区| 欧美 国产 精品| 亚洲黄色a v| 波多野结衣在线免费观看| 成人高清在线观看视频| 久久久久狠狠高潮亚洲精品| 久久99999| 91九色丨porny丨国产jk| 午夜免费一区二区| 国产深夜男女无套内射| 亚洲人辣妹窥探嘘嘘| 污污的视频免费观看| 日韩a级黄色片| 久久久精品在线视频| 日韩av片专区| 中国一级黄色录像| 成人小视频在线看| 欧美 另类 交| 国产中文字幕在线免费观看| 一级黄色片播放| 国产欧美精品一二三| 久久99爱视频| 青青青在线视频免费观看| 国产a级一级片| 国产免费黄色av| 欧美精品久久久久久久久久久| 国产特级黄色大片| 色综合五月婷婷| 污视频网站观看| 日本一二区免费| 一级网站在线观看| 伊人五月天婷婷| 天堂av免费看| 日本日本19xxxⅹhd乱影响| 老太脱裤让老头玩ⅹxxxx| 日韩 欧美 视频| 人妻精品无码一区二区三区| 国产精品无码专区av在线播放| 波多野结衣家庭教师视频| 国产真实乱子伦| 天天干天天爽天天射| www.偷拍.com| aaa毛片在线观看| 免费久久久久久| 国产91美女视频| 黄色a级在线观看| 日本男人操女人| 9l视频自拍9l视频自拍| 浮妇高潮喷白浆视频| 一区二区三区四区毛片| 隔壁人妻偷人bd中字| 五月婷婷之婷婷| 国内性生活视频| 9999在线观看| www.亚洲高清| 亚洲 高清 成人 动漫| 国产午夜精品视频一区二区三区| 超碰网在线观看| 日韩a∨精品日韩在线观看| 午夜免费福利视频在线观看| 国产精品专区在线| 国产免费xxx| 日韩欧美色视频| 亚洲免费成人在线视频| av免费在线播放网站| 国产成人无码精品久久久性色| 成年女人18级毛片毛片免费| 女同性恋一区二区| 欧洲美女和动交zoz0z| 欧美日韩亚洲国产成人| 亚洲a级黄色片| 五月天激情播播| 五月天男人天堂| 日本成人性视频| 国产成人亚洲综合无码| 亚洲国产精品无码观看久久| 久久综合久久网| 激情综合网婷婷| 免费在线观看亚洲视频| 天天碰免费视频| 中国一级大黄大黄大色毛片| 蜜臀av.com| 免费看污黄网站| 精品无码av无码免费专区| 国产精品-区区久久久狼| 蜜臀一区二区三区精品免费视频 | 黄色网页免费在线观看| 日韩免费毛片视频| 亚洲综合伊人久久| 92看片淫黄大片一级| 91社在线播放| 日本三级免费网站| 老汉色影院首页| 超碰在线人人爱| 波多野结衣之无限发射| 欧美午夜aaaaaa免费视频| 国产欧美精品aaaaaa片| 在线观看视频在线观看| 亚洲少妇第一页| 日本网站免费在线观看| 精品无码av无码免费专区| gogogo高清免费观看在线视频| 人妻少妇精品久久| 日本a级片在线观看| 天堂一区在线观看| 毛片一区二区三区四区| 成人一级片网站| 欧美精品久久久久久久自慰| 浴室偷拍美女洗澡456在线| 视频区 图片区 小说区| 永久免费黄色片| www.-级毛片线天内射视视| 亚洲一区二区三区四区精品 | 91插插插影院| 中文字幕无码精品亚洲资源网久久| 久久免费一级片| 成人av一级片| 在线观看免费视频高清游戏推荐| 色悠悠久久综合网| 一二三级黄色片| 日韩国产小视频| 日韩av片在线看| 国产精品区在线| 中国老女人av| 毛片在线视频播放| 一区二区免费av| 免费一级特黄毛片| 日本免费观看网站| 91亚洲精品国产| 欧美日韩亚洲自拍| 日韩精品综合在线| 国内av一区二区| 欧美日韩激情视频在线观看| 波多野结衣网页| 日本999视频| 131美女爱做视频| 国产精品视频网站在线观看| 欧美成年人视频在线观看| 鲁一鲁一鲁一鲁一色| 艳母动漫在线免费观看| 黑森林精品导航| 国产乱女淫av麻豆国产| 男人透女人免费视频| av在线播放天堂| 手机成人av在线| 亚洲在线观看网站| 亚洲福利精品视频| 久久9精品区-无套内射无码| 日韩欧美不卡在线| 欧美视频免费看欧美视频| 日本一本中文字幕| 逼特逼视频在线| 亚洲精品中文字幕无码蜜桃| 看av免费毛片手机播放| 欧美视频免费播放| 久久久久久久高清| 久久久久久久9| 免费看又黄又无码的网站| 农民人伦一区二区三区| 国产深夜男女无套内射| 十八禁视频网站在线观看| 亚洲综合在线网站| 国产在线视频三区| 欧美日韩激情四射| 日韩视频在线视频| 午夜免费看视频| 成年人网站国产| 天天爽天天爽夜夜爽| 法国空姐在线观看免费| 成人观看免费完整观看| 午夜精品中文字幕| 你真棒插曲来救救我在线观看| 美女一区二区三区视频| 欧洲精品视频在线| 五月天激情播播| 国产男女无遮挡| 91亚洲精品国产| 手机在线视频你懂的| jizz欧美性11| 久久久一本二本三本| 亚洲第一区第二区第三区| 久久国产精品视频在线观看| 裸体裸乳免费看| 91国产精品视频在线观看| 国产av无码专区亚洲精品| 青草网在线观看| 日韩亚洲欧美一区二区| 911av视频| 国产免费xxx| 欧美日韩亚洲国产成人| 热这里只有精品| 神马午夜伦理影院| 天天综合五月天| 免费视频爱爱太爽了| 国内少妇毛片视频| 亚洲 欧美 日韩 国产综合 在线| 青青在线免费观看| 成人毛片视频网站| 久久久久免费精品| 久久国产这里只有精品|