22 Go 語言中的函式
阿新 • • 發佈:2020-06-25
本文來介紹 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 語言的函式更加強大,能夠多引數返回,返回值更是能直接寫做變數,且作用域為整個函式。