Go 語言函數
函數是基本的程式碼區塊,用來執行一個任務。
Go 語言最少有個 main() 函數。
你可以透過函數來分割不同功能,邏輯上每個函數執行的是指定的任務。
函數宣告告訴了編譯器函數的名稱,傳回類型,和參數。
Go 語言標準函式庫提供了多種可動用的內建的函數。例如,len() 函數可以接受不同類型參數並傳回該類型的長度。如果我們傳入的是字串則傳回字串的長度,如果傳入的是數字,則傳回數組中包含的函數個數。
函數定義
Go 語言函數定義格式如下:
func function_name( [parameter list] ) [return_types] { 函数体 }
函數定義解析:
- ##func:函數由func 開始宣告
- function_name:函數名稱,函數名稱和參數清單一起構成了函數簽章。
- parameter list]:參數列表,參數就像一個佔位符,當函數被呼叫時,你可以將值傳遞給參數,這個值稱為實際參數。參數清單指定的是參數類型、順序、及參數個數。參數是可選的,也就是說函數也可以不包含參數。
- return_types:傳回類型,函數傳回一列值。 return_types 是該列值的資料型態。有些函數不需要傳回值,這種情況下 return_types 不是必須的。
- 函數體:函數定義的程式碼集合。
/* 函数返回两个数的最大值 */ func max(num1, num2 int) int { /* 声明局部变量 */ var result int if (num1 > num2) { result = num1 } else { result = num2 } return result }函數呼叫當建立函數時,你定義了函數需要做什麼,透過呼叫改函數來執行指定任務。 呼叫函數,向函數傳遞參數,並傳回值,例如:
package main import "fmt" func main() { /* 定义局部变量 */ var a int = 100 var b int = 200 var ret int /* 调用函数并返回最大值 */ ret = max(a, b) fmt.Printf( "最大值是 : %d\n", ret ) } /* 函数返回两个数的最大值 */ func max(num1, num2 int) int { /* 定义局部变量 */ var result int if (num1 > num2) { result = num1 } else { result = num2 } return result }以上實例在main() 函數中呼叫max()函數,執行結果為:
最大值是 : 200
函數傳回多個值Go 函數可以傳回多個值,例如:
package main import "fmt" func swap(x, y string) (string, string) { return y, x } func main() { a, b := swap("Mahesh", "Kumar") fmt.Println(a, b) }以上實例執行結果為:
Kumar Mahesh
函數參數函數如果使用參數,該變數可稱為函數的形參。 形參就像是定義在函數體內的局部變數。 呼叫函數,可以透過兩種方式來傳遞參數:
描述 | |
---|---|
預設情況下,Go 語言使用的是值傳遞,也就是在呼叫過程中不會影響到實際參數。
函數用法
函數用法 | |
---|---|
##函數作為值 | |
#閉包 |