Go語言函式

2021-10-09 10:15:27 字數 1847 閱讀 3228

c語言一樣,go語言也有函式,在go中函式用func關鍵字標識,其定義格式如下:

func 函式名(引數1

,引數2

)(返回值1

,返回值2

)

比較有特色的地方是go語言可以返回多個返回值。

package main

import

"fmt"

func

intsum1

(x, y int

)int

func

intsum2

(x ...

int)

intreturn sum

}// 固定引數搭配可變引數使用時,可變引數要放在固定引數的後面

func

intsum3

(x int

, y ...

int)

intreturn sum

}func

calculator

(x, y int

)(sum, sub int

)func

main()

我們可以使用type關鍵字來定義乙個函式型別,具體格式如下:

type calculation func

(int

,int

)int

上面語句定義了乙個calculation型別,它是一種函式型別,這種函式接收兩個int型別的引數並且返回乙個int型別的返回值。簡單來說,凡是滿足這個條件的函式都是calculation型別的函式,上面**片段中intsum1就是calculation型別。可以用函式型別定義變數,得到的變數就是函式型別變數。例如

func

main()

函式既可以作為引數又可以作為返回值

package main

import

("errors"

"fmt"

)func

add(x, y int

)int

func

sub(x, y int

)int

// 函式作為引數

func

calc

(x, y int

, op func

(int

,int

)int

)int

// 函式作為返回值

func

do(s string)(

func

(int

,int

)int

,error)}

func

main()

在go語言中函式內部只能定義匿名函式,顧名思義,匿名函式就是沒有函式名的函式,匿名函式的定義格式如下:

func

(引數)

(返回值)

匿名函式因為沒有函式名,所以沒辦法像普通函式那樣呼叫,所以匿名函式需要儲存到某個變數或者作為立即執行函式

func

main()

add(10,

20)// 通過變數呼叫匿名函式

//自執行函式:匿名函式定義完加()直接執行

func

(x, y int)(

10,20)

}

Go語言 函式

函式是結構化程式設計的最小模組單元,使用關鍵字 func 定義函式。go語言定義函式的一些特點總結如下 無需前置宣告 不支援命名巢狀定義 不支援同名函式過載 不支援預設引數 支援不定長變參 支援多返回值 支援命名返回值 支援匿名函式和閉包 函式屬於第一類物件,具備相同簽名 引數及返回值型別 的視為同...

Go語言函式

go語言函式function go函式不支援巢狀 過載和預設引數 但支援以下特性 無需宣告原型 不定長度引數 多返回值 命名返回值引數 匿名函式 閉包 定義函式使用關鍵字func,且左大括號不能另起一行 函式也可以作為一種型別使用 不定引數 不定引數的傳遞 任意型別的不定引數 如果你希望傳任意型別的...

Go 語言函式

func function name parameter list return types parameter list 引數列表,引數就像乙個佔位符,當函式被呼叫時,你可以將值傳遞給引數,這個值被稱為實際引數。引數列表指定的是引數型別 順序 及引數個數。引數是可選的,也就是說函式也可以不包含引數...