1. 程式人生 > GO語言入門 >22 Go 語言中的函式

22 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 語言的函式更加強大,能夠多引數返回,返回值更是能直接寫做變數,且作用域為整個函式。