精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go 語(yǔ)言的函數(shù)與指針

開發(fā) 后端
函數(shù)就是一段基本的代碼塊,一般用來(lái)對(duì)需要重復(fù)執(zhí)行的代碼進(jìn)行復(fù)用。在 go 中,函數(shù)是『一等公民』,這與 js 類似,也就是可以將函數(shù)當(dāng)做一個(gè)變量進(jìn)行傳遞。

[[392723]]

函數(shù)

函數(shù)就是一段基本的代碼塊,一般用來(lái)對(duì)需要重復(fù)執(zhí)行的代碼進(jìn)行復(fù)用。在 go 中,函數(shù)是『一等公民』,這與 js 類似,也就是可以將函數(shù)當(dāng)做一個(gè)變量進(jìn)行傳遞。

函數(shù)聲明

由于是強(qiáng)類型語(yǔ)言,與 js 不同,在函數(shù)聲明的過(guò)程中,需要指定參數(shù)與返回值的類型。

  1. func max (n1, n2 intint { 
  2.   var result int 
  3.   if n1 >= n2 { 
  4.     result = n1 
  5.   } 
  6.   if n1 < n2 { 
  7.     result = n2 
  8.   } 
  9.   return result 

在聲明函數(shù)參數(shù)和類型的時(shí)候,與聲明變量類似,可以一次性指定多個(gè)參數(shù)的類型,也可以分別指定多個(gè)參數(shù)為不同類型。

  1. func max (n1 int, n2 intint { 
  2.   …… 

如果函數(shù)返回值有多個(gè),在指定返回類型的時(shí)候,需要指定每個(gè)返回值的類型。

  1. func max (n1 int, n2 int) (error, int) { 
  2.   …… 
  3.   return errors.New(""), result 

上面的代碼,表示返回的時(shí)候需要返回兩個(gè)值,第一個(gè)值為 error 對(duì)象,用來(lái)表示執(zhí)行期間是否出現(xiàn)異常。這種方式也是 Node.js 中常見的 error-first callback 的寫法。

特殊函數(shù)

在 go 中,有兩個(gè)特殊函數(shù):main、init,這兩個(gè)函數(shù)聲明之后,一般不需要主動(dòng)調(diào)用,會(huì)有自動(dòng)執(zhí)行的機(jī)制。

 func main()

main 函數(shù)是 go 語(yǔ)言中默認(rèn)的入口函數(shù),只能應(yīng)用于 package main 中,如果在其他的 package 中不會(huì)執(zhí)行。main 函數(shù)有如下幾點(diǎn)需要注意:

  • 不能定義參數(shù);
  • 不能定義返回值;
  • 必須在 package main 中聲明;

 func init()

init 函數(shù)所有的包啟動(dòng)的時(shí)候都會(huì)執(zhí)行,執(zhí)行時(shí)機(jī)比 main 函數(shù)早,與 main 函數(shù)一樣,不能定義參數(shù)和返回值。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func init() { 
  6.  fmt.Println("執(zhí)行 init 函數(shù)\n"
  7. func main() { 
  8.  fmt.Println("執(zhí)行 main 函數(shù)\n"

函數(shù)調(diào)用

函數(shù)的調(diào)用比較簡(jiǎn)單,和其他編程語(yǔ)言類似,只需要將函數(shù)需要接受的參數(shù)傳入其中,在執(zhí)行結(jié)束后,就能得到對(duì)應(yīng)的返回值。

  1. // 定義 max 函數(shù) 
  2. func max (n1, n2 intint { 
  3.   var result int 
  4.   if n1 >= n2 { 
  5.     result = n1 
  6.   } 
  7.   if n1 < n2 { 
  8.     result = n2 
  9.   } 
  10.   return result 
  11.  
  12. func main () { 
  13.  var result = max(5, 100) 
  14.  fmt.Println("max return", result) 

匿名函數(shù)

匿名函數(shù)就是一個(gè)沒有定義函數(shù)名的函數(shù),匿名函數(shù)可以當(dāng)成一個(gè)值,將其賦值放到某個(gè)變量中。這也是之前為什么說(shuō)函數(shù)是『一等公民』,就是可以將函數(shù)當(dāng)成一個(gè)變量。

  1. var max = func (n1, n2 intint { 
  2.   var result int 
  3.   if n1 >= n2 { 
  4.     result = n1 
  5.   } 
  6.   if n1 < n2 { 
  7.     result = n2 
  8.   } 
  9.   return result 
  10. var result = max(5, 100) 
  11. fmt.Println("max return", result) 

立即執(zhí)行函數(shù)

由于 go 中的函數(shù)是 『一等公民』,可以在聲明之后立即執(zhí)行,就是在函數(shù)聲明結(jié)束后,直接加上一個(gè)括號(hào),表示該函數(shù)會(huì)立即執(zhí)行,執(zhí)行之后的結(jié)果可以通過(guò)變量進(jìn)行接收。

  1. import "math" 
  2.  
  3. var Pi = func () float64 { 
  4.   return math.Pi 
  5. }() 
  6.  
  7. fmt.Println("PI =",Pi) 

閉包

“閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)。在本質(zhì)上,閉包是將函數(shù)內(nèi)部和函數(shù)外部連接起來(lái)的橋梁。 ——百度百科

上面的描述來(lái)自百度百科,初次看概念比較難理解,如果站在使用的角度來(lái)說(shuō),閉包就是在一個(gè)函數(shù)調(diào)用后,返回另一個(gè)匿名函數(shù),并保持當(dāng)前函數(shù)內(nèi)的局部變量,可以給匿名函數(shù)引用。

下面我們可以簡(jiǎn)單實(shí)現(xiàn)一個(gè)迭代器函數(shù),該函數(shù)接受一個(gè)切片,返回一個(gè)匿名函數(shù),該匿名函數(shù)每次執(zhí)行,都會(huì)取出切片的一個(gè)值,直到全部讀取。

  1. func generate(slice []int) func() (bool, int) { 
  2.  i := 0 
  3.  length := len(slice) 
  4.  return func () (bool, int) { 
  5.   if i >= length { 
  6.    return true, 0 
  7.   } 
  8.   var result = slice[i] 
  9.   i++ 
  10.   return false, result 
  11.  } 
  12.  
  13. func main() { 
  14.  slice := []int{1, 2, 3, 4, 5} 
  15.  nextNum := generate(slice) 
  16.  done, result := nextNum() 
  17.   // 直到 done 不等于 false,才停止 
  18.  for done == false { 
  19.   fmt.Println(result, done) 
  20.   done, result = nextNum() 
  21.  } 
  22.   fmt.Println(result, done) 

指針

我們前面常說(shuō)的變量指的一般是一個(gè)值,指針是指向該變量存儲(chǔ)在內(nèi)存的位置。指針也可以存儲(chǔ)在一個(gè)變量中,該變量稱為『指針變量』。

指針變量聲明

聲明指針變量時(shí),需要指針指向哪一種類型,因?yàn)椴煌愋偷闹翟趦?nèi)存占用的空間大小不一樣,僅僅知道內(nèi)存地址還是不夠,還需要知道該變量在內(nèi)存中占用多大空間。聲明指針變量只需要在類型前,加上 * 即可。

  1. var point *int // 聲明 int 類型的指針 

指針變量賦值

給指針變量賦值,需要在對(duì)應(yīng)類型的變量前加上&符號(hào),表示取出該變量的地址。

  1. var i = 1 
  2. var point *int 
  3. point = &i 

值傳遞與引用傳遞

一般情況下,我們傳入函數(shù)的參數(shù)僅為變量的值,這樣的傳遞被稱為值傳遞,在函數(shù)內(nèi)對(duì)參數(shù)修改也不會(huì)影響到外部變量。

  1. func addOne(slice []int, number int) { 
  2.  slice = append(slice, number) 
  3.  fmt.Println("inner slice =",  slice) 
  4.  
  5. slice := []int{1, 2, 3} 
  6. addOne(slice, 100) 
  7. fmt.Println("outer slice =",  slice) 

上述代碼中,我們寫了一個(gè)函數(shù),會(huì)對(duì)傳入的切片追加一個(gè)值,調(diào)用之后,我們會(huì)發(fā)現(xiàn)外部切片的值并沒有發(fā)生變量。

如果需要外部變量的值會(huì)跟隨函數(shù)調(diào)用發(fā)生變化,就需要將變量的指針傳入函數(shù)中,這樣的傳遞被稱為引用傳遞。這樣在函數(shù)中修改參數(shù)就會(huì)影響到外部的變量了。

  1. // 此時(shí) slice 為指針變量 
  2. func addOne(slice *[]int, number int) { 
  3.   // 通過(guò) *slice 可以取出 slice 指針對(duì)應(yīng)的值 
  4.  *slice = append(*slice, number) 
  5.  fmt.Println("inner slice =",  *slice) 
  6.  
  7. slice := []int{1, 2, 3} 
  8. addOne(&slice, 100) 
  9. fmt.Println("outer slice =",  slice) 

 

責(zé)任編輯:武曉燕 來(lái)源: 自然醒的筆記本
相關(guān)推薦

2021-01-13 06:58:35

C語(yǔ)言函數(shù)指針

2021-09-27 22:49:13

GoC 指針

2011-07-15 01:20:58

C指針函數(shù)函數(shù)指針

2025-09-25 17:17:06

GoC++指針

2025-05-12 00:55:34

2021-04-07 09:02:49

Go 語(yǔ)言變量與常量

2021-07-30 07:28:15

WorkerPoolGo語(yǔ)言

2025-02-06 16:48:01

2021-04-20 09:00:48

Go 語(yǔ)言結(jié)構(gòu)體type

2022-03-27 23:11:39

Go語(yǔ)言函數(shù)

2022-11-06 23:17:23

Go語(yǔ)言項(xiàng)目

2021-07-13 06:44:04

Go語(yǔ)言數(shù)組

2023-04-09 23:09:59

Go語(yǔ)言函數(shù)

2022-07-04 14:41:31

Go 語(yǔ)言變長(zhǎng)參數(shù)變長(zhǎng)參數(shù)函數(shù)

2024-01-06 08:16:19

init?函數(shù)數(shù)據(jù)開發(fā)者

2021-10-16 17:53:35

Go函數(shù)編程

2022-07-03 23:07:48

Go語(yǔ)言參數(shù)

2020-07-07 07:00:00

RustGo語(yǔ)言編程語(yǔ)言

2015-03-09 09:34:04

C語(yǔ)言函數(shù)指針

2023-09-14 12:35:28

寄存器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

玖玖国产精品视频| 欧美综合另类| 精品欧美一区二区三区| 蜜桃传媒视频麻豆第一区免费观看 | 久久亚洲一区二区三区明星换脸 | 中文字幕+乱码+中文字幕明步| 国产精品国产一区| 亚洲精品视频中文字幕| 亚洲欧美一区二区三区不卡| 国模套图日韩精品一区二区| 亚洲精品亚洲人成人网| 视频在线一区二区三区| 蜜臀av中文字幕| 另类中文字幕网| 4p变态网欧美系列| 久久久久97国产| 99精品视频在线观看免费播放| 亚洲精品理论电影| 两女双腿交缠激烈磨豆腐| 免费成人动漫| 亚洲妇熟xx妇色黄| 亚洲天堂av免费在线观看| 天天干,夜夜爽| 国产成人在线视频网站| 国产精品一区二区三区在线播放 | 欧美一区二区视频在线观看2020| 国产欧美在线一区| 欧美78videosex性欧美| 亚洲视频免费在线观看| 性欧美大战久久久久久久免费观看| 黄色小视频免费在线观看| 极品少妇xxxx精品少妇偷拍| 国产成人精品网站| 成人免费视频毛片| 亚洲激情亚洲| 性金发美女69hd大尺寸| 精品人妻在线播放| 国产精品vip| 欧美高清一级大片| 国产大学生自拍| 亚洲国产成人精品女人| 日韩中文字幕在线| 一级片黄色录像| 欧美三级美国一级| 亚洲夜晚福利在线观看| 舐め犯し波多野结衣在线观看| 精品人人人人| 日韩av综合中文字幕| 亚洲激情 欧美| 成人搞黄视频| 亚洲高清不卡av| 国产日韩视频一区| 国产一区在线电影| 日韩精品中文字| 特级西西人体wwwww| 网曝91综合精品门事件在线| 国产视频精品xxxx| www.久久av| 国产精品片aa在线观看| 亚洲天堂免费视频| 亚洲午夜久久久久久久国产| 欧美精选一区二区三区| 国产一区二区三区丝袜| 国产精品一区二区亚洲| 国产二区精品| 欧美激情综合色综合啪啪五月| 国产真人真事毛片| 亚洲中午字幕| 国产精品91在线观看| 中文字幕码精品视频网站| 蜜臀va亚洲va欧美va天堂 | 欧美激情精品久久久久久大尺度| 清纯粉嫩极品夜夜嗨av| 亚洲国产专区校园欧美| 欧美有码在线观看| 中文字幕日本人妻久久久免费| 毛片基地黄久久久久久天堂| 91九色露脸| 三级在线观看网站| 欧美国产精品久久| 欧美日韩中文字幕在线播放| 俺来也官网欧美久久精品| 色综合久久天天综合网| 成人日韩在线视频| 国产精品qvod| 中文字幕久热精品视频在线| 国产精品久久久精品四季影院| 亚洲日韩视频| 国产日韩欧美在线看| 亚洲成a人片在线| 国产午夜久久久久| 欧美日韩激情四射| 日韩电影免费观看高清完整版| 欧美日韩激情一区二区三区| 国产无套精品一区二区三区| 亚洲人成网站77777在线观看| 最好看的2019的中文字幕视频| 免看一级a毛片一片成人不卡| 久久久久久久欧美精品| 亚洲aa中文字幕| 青青草免费在线| 亚洲人成影院在线观看| 777av视频| 日韩五码电影| 精品亚洲永久免费精品| 2021亚洲天堂| 日本sm残虐另类| 精品国产综合| av电影免费在线观看| 色www精品视频在线观看| 黄页网站在线看| 久久免费精品视频在这里| 91精品国产91久久久久福利| av中文字幕在线免费观看| 国产欧美精品国产国产专区| 日本午夜激情视频| 精品91福利视频| 在线免费看av不卡| 日韩手机在线观看| 国产成人免费在线观看| 中国成人在线视频| 色天使综合视频| 亚洲精品按摩视频| 国产 日韩 欧美 成人| 国产在线麻豆精品观看| 亚洲电影一二三区| 91成人在线| 亚洲人成网在线播放| wwwxxx亚洲| 99精品国产一区二区三区不卡| 日本高清视频免费在线观看| 欧美在线一级| 色七七影院综合| 真实新婚偷拍xxxxx| 久久久青草青青国产亚洲免观| 国产免费黄色小视频| 亚洲精品a区| 九九热这里只有精品免费看| 99热精品在线播放| 亚洲伦理在线精品| 午夜免费视频网站| 亚洲五月综合| 99久久免费国| 91九色美女在线视频| 亚洲国产精久久久久久| 国产极品美女高潮无套嗷嗷叫酒店| 国产精品一级片在线观看| 一级黄色录像免费看| 99视频这里有精品| 九九热在线精品视频| 国精产品乱码一区一区三区四区| 亚洲五码中文字幕| 国产人成视频在线观看| 亚洲伦理精品| 欧美一区二区福利| 欧美爱爱视频| 久久夜色撩人精品| 亚洲精品久久久蜜桃动漫| 午夜精品久久久久久不卡8050| 97人妻精品一区二区三区免费| 日韩一区二区久久| 欧美日韩一区二区三区在线视频| 成人啊v在线| 精品国产一区二区三区久久狼黑人| 91国产精品一区| 亚洲一区二区三区在线看| 99精品一区二区三区无码吞精| 午夜亚洲一区| 在线日韩av永久免费观看| 国产日韩在线观看视频| 久久乐国产精品| 神马亚洲视频| 欧美精品亚洲一区二区在线播放| 丁香花五月激情| jlzzjlzz亚洲日本少妇| 欧美成人黑人猛交| 国产精品久久久久久影院8一贰佰 国产精品久久久久久麻豆一区软件 | 潮喷失禁大喷水aⅴ无码| 激情欧美日韩一区二区| 中国丰满熟妇xxxx性| 亚洲婷婷丁香| 91免费版网站入口| 蜜桃在线视频| 中文字幕一区电影| 欧美性猛交 xxxx| 欧美色图一区二区三区| 强乱中文字幕av一区乱码| 91视频国产资源| 亚洲男人天堂2021| 亚欧成人精品| 一本大道东京热无码aⅴ| 午夜欧洲一区| 99超碰麻豆| 国产精品99| 97香蕉久久超级碰碰高清版 | 性欧美8khd高清极品| 黑人巨大精品欧美一区二区一视频 | 欧美亚洲激情视频| 国产日产一区二区| 亚洲欧美日韩精品久久奇米色影视| 亚洲天堂手机在线| 日韩欧美aaa| 久久精品99国产精| 国产精品每日更新| 免费无码一区二区三区| 国产一区二区三区在线观看免费视频| 亚洲中文字幕无码专区| 亚洲五月综合| 翔田千里亚洲一二三区| 日韩深夜影院| 成人片在线免费看| 国产精品一级在线观看| 国产精品扒开腿做| 自拍视频在线看| 国内精品小视频| 91精品久久| 久久精品欧美视频| 国产色在线 com| 日韩精品欧美激情| 深夜福利视频网站| 日韩一区二区三免费高清| 一二三四区视频| 欧美自拍丝袜亚洲| 男人的天堂av网站| 欧美色视频日本高清在线观看| 久久亚洲成人av| 一区二区三区欧美视频| 欧美风情第一页| 中文成人综合网| 欧美人妻一区二区三区| 久久精品人人做| 亚欧洲乱码视频| 91一区一区三区| a级一a一级在线观看| 成人国产亚洲欧美成人综合网| 国产精品igao网网址不卡| 美女诱惑一区二区| 九九精品久久久| 老色鬼精品视频在线观看播放| 午夜在线观看av| 日韩成人伦理电影在线观看| 老司机午夜av| 青青草国产成人99久久| 久热精品在线播放| 久久爱www久久做| 女人高潮一级片| 国产乱码精品1区2区3区| 中文字幕第88页| 激情亚洲综合在线| 天美一区二区三区| 高清不卡一区二区在线| 国产国语老龄妇女a片| 99国内精品久久| 五月婷婷综合在线观看| 欧美激情资源网| 亚洲精品天堂网| 亚洲美女屁股眼交3| 日本少妇性生活| 91久久精品日日躁夜夜躁欧美| 在线观看色网站| 51午夜精品国产| 亚洲成人av综合| 亚洲乱亚洲乱妇无码| 成人免费在线观看| 久久亚洲精品国产亚洲老地址| 日本高清在线观看| 91国内精品久久| 日本美女久久| 91九色对白| 久久不见久久见中文字幕免费| 日韩视频在线播放| 911精品美国片911久久久| 人妻少妇精品久久| 日韩和欧美一区二区三区| 亚洲综合123| 99re热这里只有精品视频| 国产精品视频在| 亚洲午夜电影网| 中文字幕在线观看第二页| 日韩欧美中文字幕公布| 日韩中文字幕观看| 一本大道久久加勒比香蕉| huan性巨大欧美| 日本精品一区二区三区在线播放视频 | 五月天一区二区三区| 日韩xxx视频| 欧美va在线播放| 国产高清自拍视频在线观看| 久久久精品免费| 日韩激情电影| 91久久综合亚洲鲁鲁五月天| 日韩有码av| 久久久天堂国产精品| 久久一区亚洲| 国产精品熟妇一区二区三区四区| 国产亚洲一二三区| 久久免费小视频| 欧美日韩在线直播| 三级理论午夜在线观看| 欧美成人激情图片网| 免费观看成人性生生活片| 国产精品区免费视频| 久久亚洲成人| 亚洲精品乱码久久久久久自慰| 国产精品亚洲一区二区三区在线| 国产视频三区四区| 同产精品九九九| 成人乱码一区二区三区| 日韩三级成人av网| 欧美三级网址| 精品午夜一区二区| 欧美日韩国内| 一二三级黄色片| 中文字幕第一区综合| 天天综合天天干| 亚洲精品一区二区三区精华液| 在线免费观看黄色av| 日av在线播放中文不卡| 成人av婷婷| 欧美久久久久久久久久久久久久| 蜜桃av噜噜一区二区三区小说| a级片在线观看| 天天综合色天天综合色h| 亚洲精品国产精| 久久国产精品久久精品| 中文字幕日本一区二区| 加勒比在线一区二区三区观看| 激情欧美日韩一区| 蜜桃色一区二区三区| 亚洲另类色综合网站| 国产精品无码一区二区桃花视频 | 中文字幕网站在线观看| 欧美性69xxxx肥| 亚洲av成人精品日韩在线播放| 久久免费精品视频| 成人在线超碰| 国产一线二线三线女| 成人免费高清视频| 日本网站免费观看| 精品国产精品网麻豆系列| 毛片在线网址| 国产一区二区高清视频| 亚洲精品人人| www.中文字幕av| 日韩欧美亚洲综合| eeuss影院www在线播放| 国产精品一区二区三区久久久 | 99这里只有精品视频| 久久99久久99精品| 96av麻豆蜜桃一区二区| av黄色在线播放| 伊人久久久久久久久久久久久| 黄色成人小视频| 久久香蕉视频网站| 99视频超级精品| 日本黄色一级视频| 深夜福利亚洲导航| 久久久久久久久成人| 日本男女交配视频| 久久久三级国产网站| 亚洲一区 中文字幕| 蜜月aⅴ免费一区二区三区| 91精品久久久久久综合五月天| 免费观看美女裸体网站| 久久久不卡网国产精品二区| 亚洲无码久久久久久久| 九色精品免费永久在线| 欧美精品国产白浆久久久久| 日本va中文字幕| 亚洲欧洲综合另类| 蜜桃视频久久一区免费观看入口| 欧美在线一区二区视频| 99成人超碰| 久久午夜夜伦鲁鲁片| 在线观看亚洲a| 丝袜综合欧美| 欧美一区激情视频在线观看| 狠狠色狠狠色综合日日91app| 国产在线观看99| 一区二区三区日韩在线| 一本色道69色精品综合久久| 黄色片久久久久| 亚洲精品欧美二区三区中文字幕| 亚洲精品国产精| 国产精品美女久久久久av超清| 狠狠色狠狠色综合日日tαg| 无码 人妻 在线 视频| 日韩一区二区高清| 欧美激情喷水| 久久香蕉视频网站| 日本一区二区三区dvd视频在线 | 福利电影一区二区三区| 无码人妻精品一区二区三区蜜桃91| 精品国产自在精品国产浪潮| 老牛国内精品亚洲成av人片| 亚洲xxx在线观看| 精品国产999| 丝袜国产在线| 亚洲第一导航| 26uuu色噜噜精品一区|