久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

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

go語言調用函數方法是什么

在go語言中,定義了函數之后,我們可以通過“函數名()”的方式調用函數,語法“返回值變量列表 = 函數名(參數列表)”。當“()”中包含多個參數時,參數變量以逗號分隔,尾部無須以分號結尾;“返回值變量列表”中,多個返回值使用逗號分隔。

go語言調用函數方法是什么

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

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

函數構成了代碼執行的邏輯結構,在Go語言中,函數的基本組成為:關鍵字 func、函數名、參數列表、返回值、函數體和返回語句,每一個程序都包含很多的函數,函數是基本的代碼塊。

因為Go語言是編譯型語言,所以函數編寫的順序是無關緊要的,鑒于可讀性的需求,最好把 main() 函數寫在文件的前面,其他函數按照一定邏輯順序進行編寫(例如函數被調用的順序)。

編寫多個函數的主要目的是將一個需要很多行代碼的復雜問題分解為一系列簡單的任務來解決,而且,同一個任務(函數)可以被多次調用,有助于代碼重用(事實上,好的程序是非常注意 DRY 原則的,即不要重復你自己(Don't Repeat Yourself),意思是執行特定任務的代碼只能在程序里面出現一次)。

當函數執行到代碼塊最后一行 } 之前或者 return 語句的時候會退出,其中 return 語句可以帶有零個或多個參數,這些參數將作為返回值供調用者使用,簡單的 return 語句也可以用來結束 for 的死循環,或者結束一個協程(goroutine)。

Go語言里面擁三種類型的函數:

  • 普通的帶有名字的函數
  • 匿名函數或者 lambda 函數
  • 方法

普通函數聲明(定義)

函數聲明包括函數名、形式參數列表、返回值列表(可省略)以及函數體。

func 函數名(形式參數列表)(返回值列表){     函數體 }
登錄后復制

形式參數列表描述了函數的參數名以及參數類型,這些參數作為局部變量,其值由參數調用者提供,返回值列表描述了函數返回值的變量名以及類型,如果函數返回一個無名變量或者沒有返回值,返回值列表的括號是可以省略的。

調用函數

函數在定義后,可以通過調用的方式,讓當前代碼跳轉到被調用的函數中進行執行,調用前的函數局部變量都會被保存起來不會丟失,被調用的函數運行結束后,恢復到調用函數的下一行繼續執行代碼,之前的局部變量也能繼續訪問。

函數內的局部變量只能在函數體中使用,函數調用結束后,這些局部變量都會被釋放并且失效。

Go語言的函數調用格式如下:

返回值變量列表 := 函數名(參數列表)
登錄后復制

下面是對各個部分的說明:

  • 函數名:需要調用的函數名。
  • 參數列表:參數變量以逗號分隔,尾部無須以分號結尾。
  • 返回值變量列表:多個返回值使用逗號分隔。

例如,加法函數調用樣式如下:

result := add(1,1)
登錄后復制

函數的返回值

Go語言支持多返回值,多返回值能方便地獲得函數執行后的多個返回參數,Go語言經常使用多返回值中的最后一個返回參數返回函數執行中可能發生的錯誤,示例代碼如下:

復制純文本復制
登錄后復制

登錄后復制

登錄后復制

登錄后復制

登錄后復制

conn, err := connectToNetwork()
登錄后復制

登錄后復制

在這段代碼中,connectToNetwork 返回兩個參數,conn 表示連接對象,err 返回錯誤信息。

其它編程語言中函數的返回值

  • C/C++ 語言中只支持一個返回值,在需要返回多個數值時,則需要使用結構體返回結果,或者在參數中使用指針變量,然后在函數內部修改外部傳入的變量值,實現返回計算結果,C++ 語言中為了安全性,建議在參數返回數據時使用“引用”替代指針。
  • C# 語言也沒有多返回值特性,C# 語言后期加入的 ref 和 out 關鍵字能夠通過函數的調用參數獲得函數體中修改的數據。
  • lua 語言沒有指針,但支持多返回值,在大塊數據使用時方便很多。

Go語言既支持安全指針,也支持多返回值,因此在使用函數進行邏輯編寫時更為方便。

1) 同一種類型返回值

如果返回值是同一種類型,則用括號將多個返回值類型括起來,用逗號分隔每個返回值的類型。

使用 return 語句返回時,值列表的順序需要與函數聲明的返回值類型一致,示例代碼如下:

復制純文本復制
登錄后復制

登錄后復制

登錄后復制

登錄后復制

登錄后復制

func typedTwoValues() (int, int) {     return 1, 2 } func main() {     a, b := typedTwoValues()     fmt.Println(a, b) }
登錄后復制

登錄后復制

代碼輸出結果:

1 2
登錄后復制

純類型的返回值對于代碼可讀性不是很友好,特別是在同類型的返回值出現時,無法區分每個返回參數的意義。

2) 帶有變量名的返回值

Go語言支持對返回值進行命名,這樣返回值就和參數一樣擁有參數變量名和類型。

命名的返回值變量的默認值為類型的默認值,即數值為 0,字符串為空字符串,布爾為 false、指針為 nil 等。

下面代碼中的函數擁有兩個整型返回值,函數聲明時將返回值命名為 a 和 b,因此可以在函數體中直接對函數返回值進行賦值,在命名的返回值方式的函數體中,在函數結束前需要顯式地使用 return 語句進行返回,代碼如下:

復制純文本復制
登錄后復制

登錄后復制

登錄后復制

登錄后復制

登錄后復制

func namedRetValues() (a, b int) {     a = 1     b = 2     return }
登錄后復制

登錄后復制

代碼說明如下:

  • 第 1 行,對兩個整型返回值進行命名,分別為 a 和 b。
  • 第 3 行和第 4 行,命名返回值的變量與這個函數的布局變量的效果一致,可以對返回值進行賦值和值獲取。
  • 第 6 行,當函數使用命名返回值時,可以在 return 中不填寫返回值列表,如果填寫也是可行的,下面代碼的執行效果和上面代碼的效果一樣。

    復制純文本復制
    登錄后復制

    登錄后復制

    登錄后復制

    登錄后復制

    登錄后復制

    func namedRetValues() (a, b int) {     a = 1     return a, 2 }
    登錄后復制

    登錄后復制

提示

同一種類型返回值和命名返回值兩種形式只能二選一,混用時將會發生編譯錯誤,例如下面的代碼:

復制純文本復制
登錄后復制

登錄后復制

登錄后復制

登錄后復制

登錄后復制

func namedRetValues() (a, b int, int)
登錄后復制

登錄后復制

編譯報錯提示:

mixed named and unnamed function parameters
登錄后復制

意思是:在函數參數中混合使用了命名和非命名參數。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲高清二区| 精品免费视频| 欧美日韩亚洲在线观看| 福利一区二区三区视频在线观看| 国产日产精品一区二区三区四区的观看方式| 伊人久久亚洲| 免费人成在线不卡| 视频国产精品| 91成人小视频| 美日韩一区二区三区| 国产精品美女久久久久久不卡| 国产精品一区二区精品视频观看 | 国产一区二区三区亚洲综合| 福利一区视频| 欧美性感美女一区二区| 99在线精品免费视频九九视| 亚洲午夜免费| 国产欧美一区| 久草免费在线视频| 日本美女一区| 国产视频亚洲| 日韩avvvv在线播放| 老司机免费视频一区二区三区| 91一区二区| 性欧美69xoxoxoxo| 亚洲精品九九| 精品视频国产| 婷婷亚洲综合| 日韩福利视频导航| 福利一区二区| 老司机精品久久| 91九色综合| 国产精品二区不卡| 久久国产电影| 蜜臀久久99精品久久久久宅男| 欧美日韩午夜| 久久中文亚洲字幕| 奇米777国产一区国产二区| 国产一区二区三区黄网站| 激情综合激情| 国产欧美自拍一区| 国产综合视频| 日本不卡视频在线| 蜜桃精品在线| 日本色综合中文字幕| 日韩理论片av| 日韩在线网址| 美女网站视频一区| 亚洲精品影视| 日韩av在线中文字幕| 亚洲一区日韩| 精品国产乱码久久久久久樱花| 精品1区2区3区4区| 美女久久久久久| 国产女优一区| 高潮久久久久久久久久久久久久| 99香蕉国产精品偷在线观看 | 日韩欧美午夜| 亚洲一二三区视频| 精品美女在线视频| 性色一区二区| 国产一区二区三区国产精品| 免费一级片91| 日韩精品一卡| 国产精品欧美三级在线观看| 九九久久婷婷| 久久99偷拍| av不卡在线| 国产成人免费| 97成人超碰| 久久高清免费观看| 欧美片第1页| 免费在线日韩av| 视频一区二区中文字幕| 手机在线电影一区| 久久国产免费看| 另类国产ts人妖高潮视频| 国产一区丝袜| 日本va欧美va瓶| 欧美特黄一区| 伊人久久在线| 国产精品扒开腿做爽爽爽软件| 一二三区精品| 亚洲精品一二三区区别| 国产理论在线| 国产精品九九| 日韩和欧美的一区| 亚洲资源av| 欧美一区二区三区激情视频| 精品深夜福利视频| 国产亚洲一卡2卡3卡4卡新区| 玖玖玖国产精品| 亚洲精品a级片| 欧美日韩精品一区二区视频| 特黄毛片在线观看| 欧美国产不卡| 国产欧美日韩综合一区在线播放| 视频一区中文字幕| 中日韩男男gay无套| 99精品视频在线| 国产成人精选| 美女性感视频久久| 欧美午夜三级| 欧美日韩夜夜| 日本午夜精品| 日韩在线麻豆| 亚洲欧洲免费| 亚洲深深色噜噜狠狠爱网站| 美女精品网站| 日韩精品一级中文字幕精品视频免费观看 | 欧美日韩色图| 日本在线啊啊| 国产成人精品福利| 久久69成人| 国产福利亚洲| 国产精品久久久久久模特| 日韩福利视频一区| 欧美偷窥清纯综合图区| 日本不卡高清| 7777精品| 国产精品亚洲欧美| 欧美91在线|欧美| 久久亚洲人体| 精品久久久久中文字幕小说| 高清一区二区| 三上悠亚国产精品一区二区三区| 日韩中文在线播放| 久久久9色精品国产一区二区三区| 99精品电影| 黄色欧美日韩| 日本 国产 欧美色综合| 亚洲专区视频| 欧美日韩一区自拍| 国产精品.xx视频.xxtv| 国产精品密蕾丝视频下载| 久久av影视| 在线精品亚洲欧美日韩国产| 91精品一区二区三区综合在线爱| 欧美另类专区| 视频一区中文字幕精品| 91嫩草精品| 成人在线视频免费| 久久亚洲在线| 欧美综合国产| 97精品国产99久久久久久免费| 国产亚洲久久| 麻豆成人91精品二区三区| 国产一区二区三区久久| 成人羞羞视频在线看网址| 亚洲精品99| 亚洲精品大片| 欧美国产精品| 国产99亚洲| 亚洲日韩视频| 国产激情久久| 久久久久中文| 亚洲欧美在线综合| 久久午夜影院| 久久蜜桃av| 婷婷久久免费视频| 美日韩一区二区三区| 日韩不卡视频在线观看| 国产免费成人| 国产精品成人自拍| 99久久婷婷这里只有精品| 蜜芽一区二区三区| 老色鬼精品视频在线观看播放| 久久久久国产| 日韩区一区二| 国产精品专区免费| 91久久中文| 国产精品sm| 狠狠操综合网| 国产精品一区二区三区www| 中文字幕人成乱码在线观看| 国产精品97| 欧美永久精品| 一区二区小说| 国产精品久一| 悠悠资源网久久精品| 欧美久久亚洲| 激情自拍一区| 国产精品视频一区视频二区| 激情视频一区二区三区| 日韩av一区二区在线影视| 日韩欧美字幕| 日韩激情一区二区| 亚洲91精品| 国产欧美日韩影院| 99视频精品| 久久久精品国产**网站| 亚洲激情婷婷| 成人在线丰满少妇av| 亚洲精品美女91| 99久久久久久中文字幕一区| 欧美精品中文字幕亚洲专区| 免费观看不卡av| 久久免费影院| 日本精品久久| 亚洲免费网址|