日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

Go語言學(xué)習(xí)之函數(shù)的定義與使用詳解_Golang

作者:劍客阿良_ALiang ? 更新時(shí)間: 2022-06-17 編程語言

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

原文鏈接:https://blog.csdn.net/zhiweihongyan1/article/details/124241617

欄目分類
最近更新