go基礎(6)函數

[函數就是程序中的一個代碼塊,用來去處理一些任務

一般程序肯定會有一個函數(就是main()函數)

函數分為:自己寫的函數和內置函數

自己寫的函數:

結構:

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

?函數體

}

func :關鍵字,用來聲明這是一個函數

function_name:函數的名稱

[parameter list]:函數的參數列表

[return_types]: 返回值類型

函數體:函數體就是要執行的邏輯代碼的合集

說明:func? 和?function_name必須得有 參數列表和返回值類型 不一定要有

? ? ? ? ? 參數可以有多個,返回值類型也可以有多個

func returnArray(a int, b float32) (float32, string) {

? ?c :=float32(a) + b

? ?name :="張三"

? ?return c, name

}

//這種 有返回值的 必須有返回值類型,返回類型和返回值要對應



內置函數:

內置函數就是Go 語言標準庫提供的函數

比如我們需要計算一個字符串的長度可以用內置的len函數

str :="abcdefg"

strLen :=len(str)

//結果為7

(注意啊,你要計算中文字符里面有多少個漢字要用 utf8.RuneCountInString(str) )

其他的還有很多這種內置函數,可以在這里Golang標準庫文檔參考下

函數參數:

函數的參數 類似于定義的一個函數內的一個局部變量,函數如果使用參數,該變量可稱為函數的形參。

fun sum (a int, b int ) int { }

a和b就是形參

在調用函數的時候,如果參數有形參,則調用時候就必須傳遞參數進去

func main() {

sum(1,2)

}

//此處調用sum函數時候就傳遞了兩個參數進去

函數的參數也是函數的時候

意思就是,在調用一個函數時候,把一個函數作為實參傳遞進去:

func main() {

? a :=2

? c :=10

? getNum(a, getIntNum(c))

}

func getNum(a int, b int) {

fmt.Println(a * b)

}

func getIntNum(a int)int {

return a *10

}

匿名函數

匿名函數(英語:Anonymous Function)在計算機編程中是指一類無需定義標識符(函數名)的函數子程序,普遍存在于多種編程語言中

Golang是支持匿名函數的,即在需要使用函數時,再定義函數,匿名函數沒有函數名,只有函數體,函數可以被作為一種類型被賦值給函數類型的變量,匿名函數往往以變量方式被傳遞

匿名函數經常被用于實現回調函數,閉包等.

1.申明之后直接調用

func main() {

f :=func(age int) {

fmt.Println("日暮戈薇",age)

}

f(18)

}

2.作為回調函數使用

回調函數:或簡稱回調(Callback 即call then back 被主函數調用運算后會返回主函數),是指通過函數參數傳遞到其它代碼的,某一塊可執行代碼引用

列:

func main() {

l := []int {1, 22, 55, -10}

vlist(l, func(va int) {

num := va *10

? ? ? fmt.Println("值",num)

})

}

func vlist(list []int, f func(int2 int)) {

for _, v :=range list {

f(v)

}

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容