go語言沒有使用像java python等語言的try catch/except 語句來處理異常,而是使用它特有的panic,recover,defer來捕獲和處理異常
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、南靖網(wǎng)絡(luò)推廣、小程序制作、南靖網(wǎng)絡(luò)營銷、南靖企業(yè)策劃、南靖品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供南靖建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:chinadenli.net
分析:
divide是一個做除法的函數(shù),可能會出現(xiàn)除數(shù)為0的錯誤,所以在函數(shù)一開頭就定義了一個defer匿名函數(shù)(注意這里的匿名函數(shù)定義完后面要帶上括號才能執(zhí)行),這個匿名函數(shù)被defer修飾了所以只在divide函數(shù)執(zhí)行完才會執(zhí)行,而不是一進來就執(zhí)行。后面判斷b是否等于0,如果為零的話我們手動使用panic拋出了異常,這個異常是在divide函數(shù)退出前執(zhí)行的defer匿名函數(shù)里通過recover()來捕獲的,如果err不為空就說明發(fā)生了錯誤,打印error happen!和panic拋出的divided by zero!! 然后主協(xié)程返回到主函數(shù)main里,繼續(xù)執(zhí)行后面的打印
go語言函數(shù)不能嵌套,但是在函數(shù)內(nèi)部可以定義匿名函數(shù),實現(xiàn)一下簡單功能調(diào)用。
所謂匿名函數(shù)就是,沒有名稱的函數(shù)。
語法格式如下:
當(dāng)然可以既沒有參數(shù),可以沒有返回值
運行結(jié)果
自己執(zhí)行
運行結(jié)果
其實,這就是在調(diào)用這個函數(shù),等同于:
例如,
運行結(jié)果:
又如:
運行結(jié)果一樣的。
函數(shù)還可以作為返回值,但是在Go語言中不能再像之前那樣定義函數(shù)了,只能定義匿名函數(shù)。匿名函數(shù)就是沒有函數(shù)名的函數(shù)。
閉包 = 函數(shù) + 外層變量的引用
文章名稱:go語言匿名函數(shù)小括號 go語言閉包和匿名函數(shù)
文章位置:http://chinadenli.net/article8/hgciip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、品牌網(wǎng)站建設(shè)、App開發(fā)、App設(shè)計、電子商務(wù)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)