国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一篇文章帶你了解Go語言基礎之函數(shù)(上篇)

開發(fā) 后端
這次咱們繼續(xù)學習Go基礎之函數(shù)叭。

[[348209]]

 前言
Hey,大家好呀,我是星期八,這次咱們繼續(xù)學習Go基礎之函數(shù)叭。

 

為什么需要函數(shù)
函數(shù),在所有編程語言中都叫函數(shù),Java,PHP,Python,JS等,統(tǒng)一都叫函數(shù)。

函數(shù)的作用
一般是這樣形容的:函數(shù)可以將重復的,或者特定功能的,封裝成一個方便調用的東西。

注:在Go中,函數(shù)是支持閉包的。

在沒有使用函數(shù)時
代碼

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func main() { 
  6.     //模擬一個打開文件,寫入一行內容進入文件,在關閉文件的功能 
  7.     var file_name = "a.txt" //文件名 
  8.     var w_content = "愛我中華"  //寫入的內容 
  9.     fmt.Println(fmt.Sprintf("打開 %s 文件",file_name)) 
  10.     fmt.Println(fmt.Sprintf("向 %s 文件寫入了 %s ", file_name, w_content)) 
  11.     fmt.Println(fmt.Sprintf("關閉 %s 文件",file_name)) 
  12.  
  13.     //如果再再向其他文件寫入內容,還需要復制一次 
  14.  
  15.     var file_name2 = "b.txt" //文件名 
  16.     var w_content2 = "中國威武"  //寫入的內容 
  17.     fmt.Println(fmt.Sprintf("打開 %s 文件",file_name2)) 
  18.     fmt.Println(fmt.Sprintf("向 %s 文件寫入了 %s ", file_name2, w_content2)) 
  19.     fmt.Println(fmt.Sprintf("關閉 %s 文件",file_name2)) 

使用函數(shù)后
將相同功能封裝成函數(shù)。

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func w_file(filename string, w_content string) { 
  6.     fmt.Println(fmt.Sprintf("打開 %s 文件", filename)) 
  7.     fmt.Println(fmt.Sprintf("向 %s 文件寫入了 %s ", filename, w_content)) 
  8.     fmt.Println(fmt.Sprintf("關閉 %s 文件", filename)) 
  9. func main() { 
  10.     //將相同功能封裝成函數(shù) 
  11.     w_file("a.txt", "愛我中華"
  12.     w_file("b.txt", "中國威武"

上述代碼執(zhí)行的結果都如下

ps:但是可以明顯看到,使用函數(shù)將相同功能抽出來,代碼會變的簡單,整潔。

 

函數(shù)使用
函數(shù)名命名規(guī)則
函數(shù)命名盡量以駝峰命名,例如:getName,connectData等。

語法
在Go中,定義函數(shù)語言用到func關鍵字。

  1. func 函數(shù)名([參數(shù)1 參數(shù)類型1,參數(shù)2 參數(shù)類型2,...]) [(返回值 返回值類型,...)]{ 
  2.     邏輯代碼 
  3. //中括號表示可選參數(shù) 

無參數(shù),無返回值

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func say1() { 
  6.     fmt.Println("我終于會說話了..."

有參數(shù),無返回值

  1. func say2(c string) { 
  2.     fmt.Println("我終于會說" + c + "了"

有或者無參數(shù),有返回值

  1. func say3(c string) (string) { 
  2.     fmt.Println("我終于會說" + c + "了"
  3.     return "哦耶" 

main函數(shù)

  1. func main() { 
  2.     say1() 
  3.     say2("你好哇"
  4.     result := say3("你好哇"
  5.     fmt.Printf(result) 

結果

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func say() string{ 
  6.     fmt.Println("我終于會說話了..."
  7.     return "" 
  8.  
  9. func main() { 
  10.     //函數(shù)名+括號調用函數(shù) 
  11.     say() //結果:我終于會說話了... 

注:如果函數(shù)有返回值,可以不接收。

函數(shù)參數(shù)特性
在Go中,如果函數(shù)參數(shù)都是統(tǒng)一類型,可以這樣寫。

  1. //arg1, arg2, arg3, arg4參數(shù)類型都是string 
  2. func say(arg1, arg2, arg3, arg4 string) { 
  3.   fmt.Println("我終于會說話了..."
  4.  
  5. //arg1,arg2參數(shù)是int類型,arg4,arg4是string類型, 
  6. func say(arg1, arg2, int, arg3, arg4 string) { 
  7.   //表示arg1, arg2, arg3, arg4參數(shù)類型都是string 
  8.   fmt.Println("我終于會說話了..."

大概意思就是,如果參數(shù)不寫類型,會以后面碰到的類型為準。

函數(shù)的...參數(shù)
...參數(shù),也叫可變長參數(shù),有點像Python中的*args。

功能是當不知道接收多少個參數(shù)時,接收多的參數(shù)會放在...中。

...參數(shù)需要放在最后面。

代碼

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. func say(name string, content ...string) { 
  6.     fmt.Println(content)        //結果:[666 雙擊 ok 哦耶] 
  7.   fmt.Printf("%T\n", content) //結果:[]string,是切片類型 
  8.   fmt.Println("我是"+name, "我說了:"
  9.   //循環(huán)切片 
  10.   for _, v := range content { 
  11.     fmt.Println(v) 
  12.   } 
  13.  
  14.  
  15. func main() { 
  16.   //函數(shù)名+括號調用函數(shù) 
  17.   say("張三", "666", "雙擊", "ok", "哦耶") //結果:我終于會說話了... 

結果如圖所示

注:參數(shù)是...類型的,他的值是一個切片類型。

函數(shù)的返回值
返回值是一個的

  1. package main 
  2.  
  3. import "fmt" 
  4.  
  5. //返回值是一個 
  6. func say1() string { 
  7.   return "ok" 

返回值是多個的,需要用括號括起來

  1. //返回值是多個的,需要用括號括起來 
  2. func say2() (int, string) { 
  3.   return 1, "ok" 

返回值是命名的

  1. //返回值是命名的,不管是多個返回值還是一個返回值,都需要括號 
  2. //如果是命名返回值,需要在邏輯代碼中,將變量賦值 
  3. func say3() (a int, b string) { 
  4.   //邏輯代碼 
  5.   a = 18 
  6.   b = "666" 
  7.   /* 
  8.     直接return即可,不需要retrun a,b 
  9.     return的默認就是 a 和 b 
  10.     不用跟上述返回一樣,返回具體值 
  11.   */ 
  12.   return 

main函數(shù)

  1. func main() { 
  2.   s := say1() 
  3.   fmt.Println(s) 
  4.   a1, b1 := say2() 
  5.   fmt.Println(a1, b1) 
  6.   a2, b2 := say3() 
  7.   fmt.Println(a2, b2) 

結果

總結
上述我們學習了Go基礎之函數(shù)。

責任編輯:姜華 來源: Go語言進階學習
相關推薦

2020-12-07 05:59:02

語言Go接口

2021-11-03 10:02:07

Go基礎函數(shù)

2021-10-30 10:43:04

語言Go函數(shù)

2022-02-16 10:03:06

對象接口代碼

2020-11-05 09:58:16

Go語言Map

2020-10-22 08:33:22

Go語言

2020-11-11 10:52:54

Go語言C語言

2020-12-27 10:15:44

Go語言channel管道

2020-12-09 09:59:32

Go語言技術

2020-10-23 08:38:19

Go語言

2022-04-27 10:01:43

切片Go封裝

2021-10-09 07:10:31

Go語言基礎

2020-12-30 09:04:32

Go語言TCPUDP

2021-10-13 10:00:52

Go語言基礎

2021-09-29 10:00:07

Go語言基礎

2020-10-22 11:15:47

Go語言變量

2021-10-16 10:17:51

Go語言數(shù)據(jù)類型

2020-10-27 11:08:01

JavaScript

2020-12-23 08:39:11

Go語言基礎技術

2020-11-20 08:53:35

JavaScript
點贊
收藏

51CTO技術棧公眾號

日韩av不卡在线观看| 久久九九全国免费精品观看| 粉嫩嫩av羞羞动漫久久久| 国产一区二区三区四区老人| 草莓视频一区| 国产亚洲精品久久久久久777 | 九九热线视频只有这里最精品| 亚洲中文字幕久久精品无码喷水| 国产精品推荐精品| 亚欧洲精品在线视频免费观看| 欧美在线不卡视频| 久久香蕉国产线看观看99| 欧美黄污视频| 在线精品国产亚洲| 日本中文字幕电影在线免费观看| heyzo国产| 欧美精品在线一区| 国产精品69久久| 奶水喷射视频一区| 久久日本片精品aaaaa国产| 亚洲精品国产品国语在线app| 欧美欧美天天天天操| 免费看日产一区二区三区| 国产午夜精品视频| 久久精品一级爱片| 麻豆91精品视频| 欧美日本免费| 少妇精品放荡导航| 成人黄视频免费| 你懂得影院夜精品a| 国产视频一区二区三区在线播放| 久久精品国产99精品国产亚洲性色| 7777kkkk成人观看| 在线电影中文日韩| 精品久久久久一区| 在线观看91视频| 亚洲欧美日韩久久| 久久夜色精品一区| 国产尤物一区二区在线| 瑟瑟在线观看| 日韩国产欧美亚洲| 伊人久久大香线蕉综合热线 | 欧美色图另类小说| 日韩精品无码一区二区三区| 成人a在线观看| 欧美一级电影在线| 久久精品国产综合| 日韩成人小视频| 户外极限露出调教在线视频| 天天色图综合网| 国产中文字幕精品| 欧美亚洲网站| 欧美视频在线观看| 国产精品久久久久一区二区三区厕所 | 91精品久久| 国产精品日韩精品中文字幕| 另类天堂av| 天天综合日日夜夜精品| 日韩美女视频中文字幕| 99久久香蕉| 日本乱码一区二区三区不卡| 欧美一区二区三区| 男女视频在线观看| 五月婷婷六月丁香激情| 高清在线一区二区| 久久精品国产99久久6| 欧美在线免费观看亚洲| 欧美性受xxxx黑人猛交| 丰满少妇在线观看| 国产专区精品| 26uuu欧美日本| 久久综合伊人77777蜜臀| 91精品久久久久久蜜桃| 成人性生交免费看| 亚洲一区二区三区免费| 亚洲一区二区黄色| 欧美大片在线免费观看| 欧美亚洲伦理www| 男人添女人荫蒂免费视频| 爱看av在线入口| 一卡二卡欧美日韩| 你懂的免费在线观看| 高清无码一区二区在线观看吞精| 一区二区不卡在线观看| 日韩三级电影| 就去色蜜桃综合| 欧美一二三区| 精品少妇人妻av一区二区| 成人短视频在线观看免费| 91综合久久一区二区| 日韩欧美精品网站| 精品毛片久久久久久| www视频在线观看| 精品一二三四在线| 992tv成人免费视频| 国产成人无码精品久久久性色| 成人欧美亚洲| 亚洲国产精品电影在线观看| 欧美精品电影在线播放| 日本高清不卡视频| 777xxx欧美| 九七电影韩国女主播在线观看| 国产在线网站| 日本资源在线| 在线男人天堂| 色悠久久久久综合先锋影音下载| 91国产在线精品| 日本肉肉一区 | 男人天堂久久| 亚洲国产视频网站| 琪琪久久久久日韩精品| 欧美成人三级在线| 最新黄网在线观看| 日韩电影一区二区三区四区| metart日本精品嫩模| 久久福利精品| 日韩在线观看中文字幕| 亚洲动漫精品| 黄色成人av网站| 久久精品日产第一区二区| 国产一区二区调教| 国产欧美日韩精品在线| 五月天网站亚洲| 欧美一区二区福利在线| 亚洲人成自拍网站| 久久资源免费视频| 国产精品久久久久91| 久久99热只有频精品91密拍| 亚洲成人动漫在线| 成人免费淫片免费观看| a黄色在线观看| 欧美电影免费观看网站| 一区二区三区久久精品| 天天做天天爱天天综合网| 精品电影一区| 粉嫩欧美一区二区三区高清影视| 国产精品伦理一区二区| 欧美在线制服丝袜| 在线观看精品自拍私拍| 国产精品久久久久久久久借妻 | 成人午夜精品| 国产在线日韩精品| 可以看av的网站久久看| 94色蜜桃网一区二区三区| 福利一区视频在线观看| 亚洲精品永久免费精品| 91免费国产在线观看| av污在线观看| 亚洲国产精品热久久| 人成在线免费网站| 九九九热精品免费视频观看网站| 9999久久久久| 91精品国产自产91精品| 国语精品视频| 色小说视频一区| 亚洲国产欧美日本视频| 精品国产制服丝袜高跟| 丝袜美腿美女被狂躁在线观看| 1000部国产精品成人观看| 色一情一区二区三区四区 | 青春草免费在线视频| 久久伊人中文字幕| 欧美日韩国产另类一区| yy111111少妇影院日韩夜片| 久久五月精品| 亚洲综合色网站| 97在线观看免费观看| 同产精品九九九| 欧美第一视频| 国产精品美女av| 日本在线观看www| 亚洲三级电影全部在线观看高清| 波多野结衣 作品| 美女爽到高潮91| 日本精品二区| 91在线国产福利| 综合网五月天| 国产精品xvideos88| wwwav在线| 精品国产一区二区三区久久久蜜月 | 欧美3p视频在线观看| 成人h版在线观看| 欧美一区二区综合| 国产精品女上位| 日韩有码电影| 欧洲一区二区三区在线| 国产精品一二三区视频| 日韩一区二区精品在线观看| 性欧美1819sex性高清大胸| 精品久久久久久久久久久久久久久久久| 在线欧美三级| 欧美裸体xxxx极品少妇| 欧美日韩成人在线播放| 欧美污视频久久久| 亚洲伦理电影| 成人短视频软件网站大全app| 免费日韩av片| 欧美日韩国产精品| 97免费中文视频在线观看| 91免费国产精品|