Go語(yǔ)言學(xué)習(xí)之函數(shù)的定義與使用詳解
1、函數(shù)定義
函數(shù)的定義和java一樣,使用{}進(jìn)行包裹,并且要明確入?yún)㈩愋鸵约胺祷仡愋汀?/p>
樣例代碼如下:
func min(num1, num2 int) int {
if num1 <= num2 {
return num1
} else {
return num2
}
}
func main() {
fmt.Printf("max = %d\n", min(10, 12))
}
執(zhí)行結(jié)果
max = 10
2、多值返回
和Python一樣,可以多值返回。
樣例代碼如下
func swap(num1, num2 int) (int, string) {
return num1 + num2, "haha"
}
func main() {
a, b := swap(10, 12)
fmt.Printf("swap = %d - %v\n", a, b)
}
執(zhí)行結(jié)果
swap = 22 - haha
3、引用傳遞
可以將參數(shù)的引用地址傳遞到函數(shù),這樣操作會(huì)影響到實(shí)際參數(shù)。
樣例代碼如下
func swap1(num1, num2 *int) {
var temp int
temp = *num1
*num1 = *num2
*num2 = temp
}
func main() {
c, d := 10, 20
swap1(&c, &d)
fmt.Printf("swap1 c=%d,d=%d\n", c, d)
}
執(zhí)行結(jié)果
swap1 c=20,d=10
4、函數(shù)作為實(shí)參使用
和python一樣,可以在方法內(nèi)部定義函數(shù)。
樣例代碼如下
func method(num1 int) int {
getMax := func(x, y int) int {
if x > y {
return x
} else {
return y
}
}
a := num1 - 10
b := getMax(num1, a)
fmt.Printf("value = %d\n", b)
return b
}
func main() {
fmt.Printf("method = %d\n", method(20))
}
執(zhí)行結(jié)果
value = 20
method = 20
5、匿名函數(shù)
函數(shù)返回匿名函數(shù),形成閉包。
樣例代碼如下
//匿名函數(shù)
func anonymous(num int) func() int {
var a int
a = num
return func() int {
a += 1
return a
}
}
func main() {
flagNum := anonymous(100)
fmt.Printf("1 -> %d\n", flagNum())
fmt.Printf("2 -> %d\n", flagNum())
fmt.Printf("3 -> %d\n", flagNum())
flagNum1 := anonymous(18)
fmt.Printf("4 -> %d\n", flagNum1())
fmt.Printf("5 -> %d\n", flagNum1())
}
執(zhí)行結(jié)果
1 -> 101
2 -> 102
3 -> 103
4 -> 19
5 -> 20
到此這篇關(guān)于Go語(yǔ)言學(xué)習(xí)之函數(shù)的定義與使用詳解的文章就介紹到這了,更多相關(guān)Go語(yǔ)言 函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Gin與Mysql實(shí)現(xiàn)簡(jiǎn)單Restful風(fēng)格API實(shí)戰(zhàn)示例詳解
這篇文章主要為大家介紹了Gin與Mysql實(shí)現(xiàn)簡(jiǎn)單Restful風(fēng)格API示例詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
Golang 端口復(fù)用測(cè)試的實(shí)現(xiàn)
這篇文章主要介紹了Golang 端口復(fù)用測(cè)試的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

