Go 語言函式
阿新 • • 發佈:2021-07-12
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 不是必須的。
- 函式體:函式定義的程式碼集合。
例項
以下例項為 max() 函式的程式碼,該函式傳入兩個整型引數 num1 和 num2,並返回這兩個引數的最大值:
例項
/* 函式返回兩個數的最大值 */
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("Google", "Runoob")
fmt.Println(a, b)
}
以上例項執行結果為:
Runoob Google
函式引數
函式如果使用引數,該變數可稱為函式的形參。
形參就像定義在函式體內的區域性變數。
呼叫函式,可以通過兩種方式來傳遞引數:
傳遞型別 | 描述 |
---|---|
值傳遞 | 值傳遞是指在呼叫函式時將實際引數複製一份傳遞到函式中,這樣在函式中如果對引數進行修改,將不會影響到實際引數。 |
引用傳遞 | 引用傳遞是指在呼叫函式時將實際引數的地址傳遞到函式中,那麼在函式中對引數所進行的修改,將影響到實際引數。 |
預設情況下,Go 語言使用的是值傳遞,即在呼叫過程中不會影響到實際引數。
函式用法
函式用法 | 描述 |
---|---|
函式作為另外一個函式的實參 | 函式定義後可作為另外一個函式的實引數傳入 |
閉包 | 閉包是匿名函式,可在動態程式設計中使用 |
方法 | 方法就是一個包含了接受者的函式 |
本文轉載:https://www.runoob.com/go/go-functions.html
個性簽名:獨學而無友,則孤陋而寡聞!
如果覺得這篇文章對你有小小的幫助的話,記得點個“關注”哦,博主在此感謝!還可以掃碼新增好友,交流程式設計上的問題哦!
萬水千山總是情,點贊再走行不行!哈哈哈(っ•̀ω•́)っ✎⁾⁾!