go語言學習筆記 9 函式

2021-08-08 17:34:24 字數 1570 閱讀 1051

格式

func函式名(引數列表)(返回值列表)

引數列表

引數列**式類似變數宣告,但不需要var關鍵字

age int, name string

i1, i2 int

返回值列表

1、基本格式同引數列表

2、返回值可以沒有變數名

3、當只有乙個返回值,且返回值變數未命名時,或沒有返回值時,括號可省略

多返回值 實現

1、直接return, 按順序,依次附加上各個返回值

2、由於返回值都有變數名,可以直接對各個返回值變數進行賦值

呼叫return時,自動將各個返回值變數的值返回給呼叫語句 接收

1、準備對應的變數接收函式返回的值

2、不需要接收的變數使用匿名變數(_)接收

函式呼叫

包內函式:直接呼叫

包外函式:

1、匯入包

2、呼叫包外函式:包名.函式名(實參表)

3、函式名必須大寫字母開頭

不定引數的函式

1、不限制不定引數的個數,但是限制不定引數的型別

最後乙個引數型別:

...type

...type:本質上是乙個陣列切片,即

type

可以通過訪問陣列切片元素的方式來獲取實參

2、不定引數的函式中向另乙個不定引數的函式傳遞引數

myfunc(args

...) //原樣傳遞

myfunc(args[1:]

...) //傳遞部分

3、任意型別的不定引數

1)、引數型別:

...inte***se{}

2)、獲取各個實參的型別

for

_, arg := range args

}匿名函式

由 乙個不帶函式名的函式宣告和

函式體構成

可以直接賦值給變數,或直接執行

f := func (x int) int

func(x int) int

(2)

//帶「(2)」表示,直接呼叫,引數為2

閉包定義

包含自由變數的**塊

自由變數: 不在閉包內和任何全域性上下文中定義,而是在定義閉包的環境中定義作用

只要閉包還會被呼叫,閉包中引用的變數(包含自由變數)就不會被釋放

閉包為自由變數提供繫結的計算環境價值

閉包可以做為函式物件或匿名函式,儲存到變數中,做為引數進行傳遞

能夠被函式動態的建立和返回例項

func main()

}() //(): 表示匿名函式直接執行

fa() //呼叫閉包

j *= 2

fa() 

//呼叫閉包}

go語言學習筆記 函式

go語言的函式定義更像是python和c語言的結合體,並且也有不定引數的傳參以及位址傳參方式,非常強大。下面舉一些例子來詳細說明 無參無返回值函式 func myfunc 有參無返回值函式 func myfunc1 a int b int 如果同樣型別,可以簡寫成以下內容 func myfunc2 ...

Go語言學習筆記 函式

函式 函式是各個語句指令的集合,可以實現指定的功能,可以重複使用 定義 func 函式名 引數名 引數型別 返回值名 返回值型別 func x,y int 10,20 匿名函式自呼叫,在後面加上括號簡單來說就是 閉包 函式 匿名函式 引用環境 func adder func int int defe...

Go語言學習筆記 內建函式

go中的預定義函式 go中的預定義函式 close newpanic complex delete make recover real lenprint imag capcopy printlnclose 用於channel的通訊,使用它來關閉channel delete 用於map中刪除例項 le...