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

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

go語言中函數(shù)是什么意思

在go語言中,函數(shù)是組織好的、可重復使用的、用來實現(xiàn)單一具體或相關聯(lián)功能的代碼段(塊);其主要目的是提高應用的模塊性和代碼的重復利用率,更好的管理代碼,模塊化開發(fā)。函數(shù)通常使用參數(shù)和返回值,與調用者交互數(shù)據(jù);參數(shù)給函數(shù)傳遞數(shù)據(jù),返回值,函數(shù)將處理好的數(shù)據(jù)傳遞給調用者。

go語言中函數(shù)是什么意思

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

本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

函數(shù)是組織好的、可重復使用的、用來實現(xiàn)單一或相關聯(lián)功能的代碼段,其可以提高應用的模塊性和代碼的重復利用率。

函數(shù)概述

函數(shù),function,獨立的,用于實現(xiàn)具體功能的代碼塊。主要目的,是代碼的重用(重復使用),更好的管理代碼,模塊化開發(fā)。 函數(shù)通常使用參數(shù)和返回值,與調用者交互數(shù)據(jù)。參數(shù)給函數(shù)傳遞數(shù)據(jù),返回值,函數(shù)將處理好的數(shù)據(jù)傳遞給調用者。 Go語言中函數(shù)被稱為一等公民(first-class)。意味著支持高階函數(shù),支持匿名函數(shù),支持閉包等特性,可以滿足接口等高級函數(shù)特性。

函數(shù)定義

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

語法:

  • 定義:

func 函數(shù)名(形參列表)(返回值類型列表) {   函數(shù)體,通常會有return語句,返回值 }
登錄后復制

  • 調用:

函數(shù)名(實參列表)
登錄后復制

函數(shù)名:函數(shù)的標識符,用于找到函數(shù),內部是一個指向函數(shù)代碼的地址。 形參列表:由變量和類型構成 返回值類型列表:函數(shù)返回值的類型,多個返回值需要指定多個。 函數(shù)體:實現(xiàn)函數(shù)功能的具體語句。 return語句:返回值語句

以上定的為命名函數(shù),不能定義在其他函數(shù)內部。

函數(shù)參數(shù)

用于在調用函數(shù)時向函數(shù)傳遞數(shù)據(jù)。 實參,實際參數(shù)。調用時給的參數(shù)。指的是具有的特定實際數(shù)據(jù)的參數(shù)。 形參,形式參數(shù)。定義時使用的參數(shù)。指的是用來表示函數(shù)需要參數(shù),而定義時參數(shù)是沒有任實際何數(shù)據(jù)的。 當調用時會發(fā)生使用實參為形參變量賦值的過程,稱為參數(shù)的傳遞。在函數(shù)的執(zhí)行期間,形參是有具體數(shù)據(jù)的,形參當于函數(shù)內聲明的變量。

參數(shù)的傳遞,分為值傳遞,地址傳遞兩種方式。地址傳遞時,需要形參定義為指針類型,調用時需要取得地址傳參。示例代碼:

func funcTest(p1 int, p2 *int) {   p1++   *p2++   fmt.Println(p1, *p2) } func main() {   var (     a1 = 42     a2 = 42   )   funcTest(a1, &a2)   // 參數(shù)賦值過程   fmt.Println(a1, a2) }
登錄后復制

以上會輸出

43 43 42 43
登錄后復制

值傳遞,函數(shù)會得到實參的一份拷貝。地址傳遞,函數(shù)會得到實參地址,這樣函數(shù)內通過地址對變量的修改,同時影響實參。

Go支持rest…不定數(shù)量參數(shù),定義時將不定數(shù)量形參放在形參列表的最后定義,使用 …Type的方式,演示:

定義: func funcTest(op string, nums ...int) {   fmt.Println(nums) // [4, 1, 55, 12], slice切片型數(shù)據(jù) } 調用 funcTest("someOp", 4, 1, 55, 12)
登錄后復制

接收到的參數(shù)為slice切片類型。

函數(shù)返回值

return語句用于生成返回值。需要在函數(shù)定義時確定返回值類型,支持多值返回。演示語法:

func funcTest() (int, string) {   return 42, "Hank" }
登錄后復制

可以在定義時,聲明返回的變量。這個做法叫命名返回,演示為:

func funcTest() (num int, title string) {   num = 42   title = "Hank"   return }
登錄后復制

不用return任何數(shù)據(jù),直接return即可!

函數(shù)變量

函數(shù)可以看作一種特殊的指針類型,可以和其他類型一樣被保存在變量中。通過函數(shù)標識符和變量都可以訪問到該函數(shù),演示如下:

func funcTest() {   fmt.Println("func() type") } func main() {   fmt.Printf("%T, (%v)n", funcTest, funcTest)   fn := funcTest   fmt.Printf("%T, (%v)n", fn, fn)   funcTest()   fn() }
登錄后復制

執(zhí)行結果:

func(), (0x48fe20) func(), (0x48fe20) func() type func() type
登錄后復制

可見,函數(shù)標識符就是指向函數(shù)的指針。可以賦值給其他變量。

函數(shù)參數(shù)

函數(shù)也可以作為其他函數(shù)的參數(shù)來使用,演示如下:

func funcSuccess() { } func funcAsync(handle func()) {   // 調用函數(shù)參數(shù)   handle() } // 傳遞函數(shù)到其他函數(shù) funcAsync(success)
登錄后復制

這種回調函數(shù)的使用語法,在處理異步邏輯時十分有用。

匿名函數(shù)

可以定義匿名函數(shù)。可以將匿名函數(shù)保存到變量中,作為參數(shù)傳遞,或者立即調用。如果函數(shù)時臨時使用函數(shù),則匿名函數(shù)是一個好選擇。示例語法:

賦值給變量 fn := func() { } fn()  // 作為參數(shù) someFunc(func() {   })  // 立即調用 func() {   }()
登錄后復制

閉包

由于匿名函數(shù)可以定義在其他函數(shù)內,同時變量的作用域為層疊的,也就是匿名函數(shù)可以會訪問其所在的外層函數(shù)內的局部變量。當外層函數(shù)運行結束后,匿名函數(shù)會與其使用的外部函數(shù)的局部變量形成閉包。示例代碼:

var fn func() func outer() {   v := 42   fn = func() {     v ++     fmt.Print(v)   } }  outer() fn() // 43
登錄后復制

此例中,fn 對應的匿名函數(shù)與 outer() 的局部變量 v,就形成了閉包。

函數(shù)調用示意圖

var v = "global" func funcTest(v) {   v = "funcTest"   fmt.Println(v) } func main() {   v := "main"   funcTest(v) }
登錄后復制

代碼編譯期間,會將函數(shù)代碼存放在內存代碼區(qū)。 函數(shù)被調用時,在運行期間會在函數(shù)運行棧區(qū)開辟函數(shù)棧,內部由局部變量標識符列表(就是局部變量),上層標識符列表引用等信息。直到運行結束,此空間才會被出棧,釋放。 函數(shù)內部調用了新函數(shù),新函數(shù)的執(zhí)行空間入棧,要等到新函數(shù)執(zhí)行空間出棧,調用他的函數(shù)才會被出棧。 以上代碼的運行邏輯圖如下:

go語言中函數(shù)是什么意思

遞歸調用

函數(shù)內部調用函數(shù)本身。稱之為遞歸調用。示例代碼:

func funcTest() {   fmt.Println("run")   funcTest() }
登錄后復制

定義實現(xiàn)遞歸調用函數(shù)時,通常需要定義一個出口。用來確定何時不再進行遞歸調用了。一旦滿足條件,則調用停止。例如:

func funcTest(v) {   fmt.Println(v, "run")   v ++   if v <= 10 {     funcTest()   } }
登錄后復制

典型的應用有,樹狀菜單的處理,遍歷目錄,快速排序等。 遞歸調用的優(yōu)勢是編碼簡單,與描述的業(yè)務邏輯保持一致。

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲人成亚洲精品| 欧美搞黄网站| 一二三区精品| 日韩精品三级| 国产精品tv| 欧美片第1页| 欧美日韩色图| 亚洲免费在线| 欧美日韩一区二区三区四区在线观看 | 青青青国产精品| 精品资源在线| 九九在线精品| 日本不卡视频一二三区| 麻豆久久久久久| 欧美三级网址| 亚洲婷婷丁香| 精品久久久久中文字幕小说| 久久精品免费一区二区三区 | 婷婷亚洲五月| 国产精品久久久久久久久久白浆 | 日韩中文字幕一区二区高清99| 久久不卡日韩美女| 国精品一区二区三区| 日韩一区二区三区精品视频第3页| 精品国产乱码久久久久久樱花| 国产国产精品| 国产精品地址| 在线一区免费| 国产极品模特精品一二| 亚洲网站视频| 国产激情久久| 免费日本视频一区| 成人在线丰满少妇av| 丝袜亚洲另类欧美| 成人亚洲精品| 免费观看日韩电影| 国产高潮在线| 日本不卡一二三区黄网| 日韩不卡在线| 国产精品毛片aⅴ一区二区三区| 欧美日一区二区| 你懂的网址国产 欧美| 欧美特黄一区| 粉嫩av一区二区三区四区五区| 欧美中文日韩| 精品国产不卡| 亚洲人成在线影院| 久久伦理在线| 久久久国产精品网站| 免费在线视频一区| 激情久久久久久| 久久97久久97精品免视看秋霞| 模特精品在线| 欧洲在线一区| 久久精品女人| 日本色综合中文字幕| 日韩av一级| 免费亚洲一区| 日本aⅴ亚洲精品中文乱码| 久久亚洲在线| 福利精品一区| 国产精品地址| 欧美一区激情| 免费在线观看一区二区三区| 日韩电影二区| 久久成人高清| 日本精品久久| 日韩午夜在线| 亚洲性色视频| 日韩精品看片| 福利在线一区| 精品国产亚洲一区二区在线观看| 偷拍亚洲精品| 99国产精品久久久久久久| 国产高清不卡| 国产精品成人a在线观看| 国产日韩一区| 日韩国产在线观看| 中文字幕中文字幕精品| 99视频精品| 欧美成人久久| 日韩在线视频精品| 亚洲精品福利电影| 另类专区亚洲| 国产suv精品一区| 精品中文字幕一区二区三区四区| 青青草91久久久久久久久| 亚洲精品黄色| 蜜桃一区二区三区在线观看| 国产高清久久| 99视频精品免费观看| 悠悠资源网久久精品| 欧美福利在线| 亚洲一区日本| 男女激情视频一区| 男女男精品视频网| 天海翼亚洲一区二区三区| 影音先锋久久精品| 三级在线看中文字幕完整版| 国产亚洲欧美日韩精品一区二区三区| 久久精品国产99久久| 欧美激情视频一区二区三区免费 | 日本特黄久久久高潮| 日本久久二区| 日韩高清二区| 国产精品一线天粉嫩av| 国产精品一二| 久久影院一区二区三区| 国际精品欧美精品| 91一区二区三区四区| 成人亚洲一区二区| 日本精品在线中文字幕| 久久精品导航| 午夜在线视频一区二区区别| 爽好多水快深点欧美视频| 亚洲精品婷婷| 国产精品久久久久久模特 | 97se综合| 香蕉成人久久| 四虎精品永久免费| 国产乱人伦丫前精品视频 | 精品视频在线观看网站| 日韩av一级| 三级在线观看一区二区| 日韩三级视频| 欧美激情五月| 欧美不卡在线| 日韩精品视频在线看| 国产精品久久久一区二区| 日韩精品2区| 亚洲激情另类| 日韩1区2区日韩1区2区| 色综合五月天| 亚洲免费精品| 欧美日韩一视频区二区| 亚洲三级欧美| 蜜桃视频一区二区三区| 欧美交a欧美精品喷水| 日韩一区三区| 亚欧成人精品| 国产成人免费| 久色成人在线| 欧美激情视频一区二区三区在线播放| 99tv成人| 欧美日韩 国产精品| 日韩国产在线| 日韩精品社区| 99久久久国产精品美女| 日本不卡的三区四区五区| 国产91在线精品| 水蜜桃久久夜色精品一区的特点| 精品一区二区三区四区五区| 国产麻豆综合| 久久爱www成人| 狠狠色狠狠色综合日日tαg| 国产欧美一区| 99视频精品全部免费在线视频| 婷婷久久免费视频| 桃色一区二区| 日本欧美一区二区| 深夜视频一区二区| 国产日本久久| 欧美日韩国产在线一区| 久久99精品久久久久久园产越南| 激情欧美日韩一区| 久久不卡日韩美女| | 国产激情欧美| 日韩在线网址| 欧美~级网站不卡| 麻豆久久久久久| 综合欧美精品| 久久在线免费| 捆绑调教美女网站视频一区| 蜜桃视频免费观看一区| 久久国产成人午夜av影院宅| 国产日韩免费| 日韩精品一二三四| 91亚洲国产| 国产九九精品| 亚洲网址在线观看| 亚洲一级高清| 日韩精品第一区| 国产美女亚洲精品7777| 最新日韩欧美| 午夜av成人| 国产一区二区三区网| 日韩av中文字幕一区二区三区| 人人精品亚洲| 激情国产在线| 国产精品久久久一区二区| 伊人久久一区| 欧美天堂亚洲电影院在线观看| 在线亚洲人成| 精品午夜av| 国产精品99精品一区二区三区∴| 五月亚洲婷婷 | 日韩精品电影| 日韩精品第一区| 国产va免费精品观看精品视频|