Golang筑基 ——函數(shù)

定義

golang函數(shù)的定義:

func 函數(shù)名(參數(shù)) 返回參數(shù){
  //函數(shù)體
}

特點(diǎn)

在golang中至少有一個(gè)main函數(shù)
每個(gè)包只能有一個(gè)main函數(shù)
golang函數(shù)的功能相比于C/C++更便捷,golang函數(shù)可以返回多個(gè)值,這極大地方便了使用

1. golang函數(shù)可以返回多個(gè)值

下面的函數(shù)返回了int 和error兩個(gè)值,利用這個(gè)特性我們就可以判斷函數(shù)內(nèi)的執(zhí)行情況,并做出決策,終止運(yùn)行或者返回錯(cuò)誤。

func GetData() (int, error){
  return 0, nil
}
2. golang的函數(shù)均包含 func 關(guān)鍵字
3. golang支持匿名函數(shù)(即閉包)

匿名函數(shù)就是沒(méi)有名字的函數(shù),其用途有以下幾種:

1.匿名函數(shù)賦給變量
// 匿名函數(shù)賦給變量
data := func(a int){
   fmt.Println("a is %d", a)
}
fmt.Println(data(10))

//輸出
a is 10
2.用作回調(diào)函數(shù)
// 遍歷切片的每個(gè)元素, 通過(guò)給定函數(shù)進(jìn)行元素訪問(wèn)
func visit(list []int, f func(int)) {
    for _, v := range list {
        f(v)
    }
}
func main() {
    // 使用匿名函數(shù)打印切片內(nèi)容
    visit([]int{1, 2, 3, 4}, func(v int) {
        fmt.Println(v)
    })
}
3. 開(kāi)啟新的goroutine
func main() {
  ch := make(chan int)//用于等待goroutine執(zhí)行
  fmt.Println("program is start")
  go func(){
    fmt.Println("start new goroutine")
    ch<-1
  }
  <-ch
}
4. golang函數(shù)支持可變參數(shù)

下面的函數(shù)入?yún)ⅲ琻ums,是可變參數(shù),可以傳多個(gè),也可以不傳

func test(nums ...int){
  for _,value := range nums{
    fmt.Println("%d", value)//打印參數(shù)
  }
}
func main() {
  test(1, 2, 3, 4, 5)
}
//打印結(jié)果
1
2
3
4
5
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容