go語言學習 函式

2022-07-12 11:27:07 字數 1410 閱讀 9706

函式宣告包括函式名,形參列表,返回值列表(可選),函式體組成

func test(parameters) (returns)
其中 parameters 就是函式的形參列表,描述了函式的引數名和引數型別,可以沒有引數但是這個括號不可以省略; returns就是返回值列表,描述了函式返回值的變數名(可選)和型別, 如果函式返回乙個沒有名字的引數或者沒有返回值,就可以不要括號

這裡的引數和返回值的型別都不能省略,不過可以簡寫(如果有的話)

例如:

func add(x int, y int) int 

// 可以簡寫成

func add(x, y int) int

這裡需要注意的是函式呼叫都必須按照宣告順序為所有的引數提供實參.並且go語言的函式沒有預設值,也不能通過引數名指定形參,因此形參和返回值的變數名對於函式呼叫者是沒有用處的,只是在函式內部使用

如果實參是引用型別,如指標,slice,map,function,channel等型別,在函式內部進行修改,就會影響到傳入的實參;

其他型別的實參是傳遞的是值的拷貝,對其修改不會影響函式外部。

語法:

func test(x int, ns ...int)

就是在引數型別前面加上三個點 「…」,這裡需要注意的地方是這個變參本質上是乙個slice,可在函式內部直接訪問,並且乙個函式只能有乙個變長引數,並且只能在最後的位置

例如:

func add(x int, nums ...int) int 

return x

}

上面就是實現n個數的加法

同時在呼叫變參函式是,也可以將slice作為實參,不過需要展開,就是在slice後面加 「…」

呼叫方式:

add(10, 20, 30)  // 60

// 也可以使用slice

s := int

add(10, ...s) // 80

go語言的函式支援多個返回值

func test() (int, int)
此時就返回兩個值,就需要有兩個變數來接收,也可以使用 _ 接收來忽略某個引數

同時我們還可以為返回值起個名字

func test() (x int, y, int)
此時就可以使用return 隱式的返回引數了,會自動返回對應名字的引數,注意這裡的返回值的名字不會影響函式外部.

go也支援匿名函式,可以直接賦值給變數,或者當做結構體的字段等

var add = func(x, y int) 

// 然後就可以使用變數名呼叫

add(10, 20) // 30

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語言學習

sudo apt get install golang但是用ubuntu的庫安裝有幾個不好的地方 因此建議不要使用ubuntu的庫安裝golang環境 golang社群的安裝指導 wget tar c usr local zxf go1.6.2.linux amd64.tar.gz設定環境變數,修改...