亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Go 語言中的函數

本文來介紹 Go 語言中的函數。Go 語言的函數和其它語言的用法類似,但是 Go 語言中所有東西都是變量,包括函數,函數在 Go 語言中也是變量的一種,所以函數名的命名規則和變量名相同,同時這個和我們后面要講解的函數式編程有關,目前本文僅介紹 Go 語言中函數的聲明使用

1. 函數的定義和使用

Go 語言中,通過 func 關鍵字來聲明和定義函數。Go 語言和 C 語言不同,Go 語言函數的聲明和定義是一起的,不存在先聲明在定義,且聲明時不分前后均可互相調用。

代碼示例

package main

import "fmt"

func print(s string) {
    fmt.Println(s)
}

func main() {
    print("Hello Codey !")

}
  • 第 5 行:聲明并定義一個名叫 print 的函數,函數接收一個 string 類型的參數;
  • 第 6 行:函數體。一個輸出接收進來參數的值的語句;
  • 第 9 行:聲明并定義了一個叫main的函數。Go 語言中程序的入口就時 main 函數,所有的程序都以main 函數作為入口;
  • 第 10 行:調用 print 函數,傳入參數"Hello Codey !"。

執行結果

圖片描述

2. 函數的返回值

Go 語言的函數的返回值也有些特殊,它可以一次返回**多個返回值,**Go 語言中如果是單返回值,可以直接在函數聲明的括號后面增加數據類型,代碼示例如下:

func Sum(a, b int) int //聲明并定義一個返回值為int數據類型的函數

若要返回多個返回值,則需要用括號包裹返回值,并使用,隔開所有返回值,代碼示例如下:

func Sum(a, b int) (int,string) //聲明并定義一個返回值為int和string數據類型的函數

返回的方式有兩種。一種是用 return 關鍵字加返回值直接返回,一種是聲明返回值變量,使用返回值變量直接返回。

2.1 使用 return+ 返回值返回

和其它語言不同的是,Go 語言可以一次返回多個值,多個值直接跟在 return 關鍵字之后,使用,隔開即可。

代碼示例

package main

import "fmt"

func SumAndProduct(a, b int) (int, int) {
    c := a + b
    d := a * b
    return c, d //同時返回c和d兩個變量
}

func main() {
    sum, product := SumAndProduct(1, 2) //接收多返回值的函數時,也需要用逗號隔開變量
    fmt.Println("a + b =", sum)
    fmt.Println("a * b =", product)
}

執行結果

圖片描述

2.2 使用返回值變量返回

Go 語言還能直接在返回值處聲明變量,這個變量的作用域是整個函數,并且會在 return 的時候直接返回。

代碼示例

package main

import "fmt"

func SumAndProduct(a, b int) (c int, d int) {
    c = a + b //因為c和d函數返回值處已經定義了,可以直接使用
    d = a * b
    return //直接返回,c和d自動傳出去
}

func main() {
    sum, product := SumAndProduct(1, 2) //接收多返回值的函數時,也需要用逗號隔開變量
    fmt.Println("a + b =", sum)
    fmt.Println("a * b =", product)
}

執行結果

圖片描述

3. 小結

本文主要介紹了 Go 語言中函數的定義和使用。主要就是和其它語言比起來,Go 語言的函數更加強大,能夠多參數返回,返回值更是能直接寫做變量,且作用域為整個函數。