當前位置:
首頁 > 知識 > Go 語言函數

Go 語言函數

函數是基本的代碼塊,用於執行一個任務。

Go 語言最少有個 main() 函數。

你可以通過函數來劃分不同功能,邏輯上每個函數執行的是指定的任務。

函數聲明告訴了編譯器函數的名稱,返回類型,和參數。

Go 語言標準庫提供了多種可動用的內置的函數。例如,len() 函數可以接受不同類型參數並返回該類型的長度。如果我們傳入的是字元串則返回字元串的長度,如果傳入的是數字,則返回數組中包含的函數個數。

Go 語言函數

函數定義

Go 語言函數定義格式如下:

func function_name( [parameter list] ) [return_types] {

函數體

}

函數定義解析:

func:函數由 func 開始聲明

function_name:函數名稱,函數名和參數列表一起構成了函數簽名。

parameter list:參數列表,參數就像一個佔位符,當函數被調用時,你可以將值傳遞給參數,這個值被稱為實際參數。參數列表指定的是參數類型、順序、及參數個數。參數是可選的,也就是說函數也可以不包含參數。

return_types:返回類型,函數返回一列值。return_types 是該列值的數據類型。有些功能不需要返回值,這種情況下 return_types 不是必須的。

函數體:函數定義的代碼集合。

Go 語言函數

實例

以下實例為 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
", 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 語言函數

函數參數

函數如果使用參數,該變數可稱為函數的形參。

形參就像定義在函數體內的局部變數。

調用函數,可以通過兩種方式來傳遞參數:

傳遞類型描述

值傳遞值傳遞是指在調用函數時將實際參數複製一份傳遞到函數中,這樣在函數中如果對參數進行修改,將不會影響到實際參數。

引用傳遞引用傳遞是指在調用函數時將實際參數的地址傳遞到函數中,那麼在函數中對參數所進行的修改,將影響到實際參數。

默認情況下,Go 語言使用的是值傳遞,即在調用過程中不會影響到實際參數。

函數用法

函數用法描述

函數作為值函數定義後可作為值來使用

閉包閉包是匿名函數,可在動態編程中使用

方法方法就是一個包含了接受者的函數

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Go 語言環境安裝
Go 語言數據類型
Go 語言變數
C 泛型(Generic)

TAG:程序員小新人學習 |

您可能感興趣

Go 語言變數作用域
Go 語言編程
Mozilla開放源碼數據集 實現多語言語音識別
關於C語言中的scanf()函數
Go 語言切片(Slice)
Go 語言範圍(Range)
網易有道CEO周楓:Go語言繼承了C語言的靈活簡單
跨越YouTube語言障礙系列之一-設置中文語言界面
C語言字元串相關函數實現
品讀英國女畫家Trudy Good-用色粉表現的語言
C 語言動態數組
Golang語言TLS雙向身份驗證拒絕服務漏洞分析
Go Cloud項目開源發布:Go語言將成為雲端應用開發的首選語言?
Go 語言十年而立,Go2 蓄勢待發
谷歌Gboard輸入法新增50種語言
Python語言學習路線圖
Go 編程語言的簡單介紹
Linux C語言:一切從main函數說起!
Google翻譯的相機功能已支持將原文翻譯成超過100種語言
R語言繪圖——常用參數