最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2022年04月18日 10:49:24   作者:劍客阿良_ALiang  
這篇文章主要為大家詳細介紹Go語言中函數(shù)的定義與使用,文中的示例代碼講解詳細,對我們學習Go語言有一定幫助,需要的可以參考一下

1、函數(shù)定義

函數(shù)的定義和java一樣,使用{}進行包裹,并且要明確入?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í)行結果

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í)行結果

swap = 22 - haha

3、引用傳遞

可以將參數(shù)的引用地址傳遞到函數(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í)行結果

 swap1 c=20,d=10

4、函數(shù)作為實參使用

和python一樣,可以在方法內部定義函數(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í)行結果

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í)行結果

1 -> 101                           
2 -> 102                           
3 -> 103                           
4 -> 19                            
5 -> 20

到此這篇關于Go語言學習之函數(shù)的定義與使用詳解的文章就介紹到這了,更多相關Go語言 函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Gin與Mysql實現(xiàn)簡單Restful風格API實戰(zhàn)示例詳解

    Gin與Mysql實現(xiàn)簡單Restful風格API實戰(zhàn)示例詳解

    這篇文章主要為大家介紹了Gin與Mysql實現(xiàn)簡單Restful風格API示例詳解,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • Go json反序列化“null“的問題解決

    Go json反序列化“null“的問題解決

    本文主要介紹了Go json反序列化“null“的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Golang橋接模式講解和代碼示例

    Golang橋接模式講解和代碼示例

    橋接是一種結構型設計模式,可將業(yè)務邏輯或一個大類拆分為不同的層次結構,從而能獨立地進行開發(fā),本文將通過代碼示例詳細給大家介紹一下Golang橋接模式,需要的朋友可以參考下
    2023-06-06
  • 在Gin框架中解決跨域問題的多種方法

    在Gin框架中解決跨域問題的多種方法

    在使用Go語言進行Web開發(fā)時,Gin框架因其簡潔、高效的特點而被廣泛使用,然而,在實際開發(fā)中,跨域問題(CORS, Cross-Origin Resource Sharing)是一個常見的挑戰(zhàn),本文將結合實際案例,詳細介紹在Gin框架中解決跨域問題的多種方法,需要的朋友可以參考下
    2024-10-10
  • Golang 端口復用測試的實現(xiàn)

    Golang 端口復用測試的實現(xiàn)

    這篇文章主要介紹了Golang 端口復用測試的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 詳解Go語言如何解析帶注釋的json

    詳解Go語言如何解析帶注釋的json

    標準的json格式是不帶注釋,但是有時候為了方便理解json中各字段的含義,需要支持帶注釋的json,這篇文章主要介紹了Go語言解析帶注釋json的相關方法,希望對大家有所幫助
    2024-03-03
  • Golang中Json的序列化和反序列化的使用

    Golang中Json的序列化和反序列化的使用

    本文主要介紹了Golang中Json的序列化和反序列化的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • GO中的條件變量sync.Cond詳解

    GO中的條件變量sync.Cond詳解

    條件變量是基于互斥鎖的,它必須基于互斥鎖才能發(fā)揮作用,條件變量的初始化離不開互斥鎖,并且它的方法有點也是基于互斥鎖的,這篇文章主要介紹了GO的條件變量sync.Cond,需要的朋友可以參考下
    2023-01-01
  • 一文詳解Go語言中Mutex互斥鎖

    一文詳解Go語言中Mutex互斥鎖

    Golang中的Mutex互斥鎖是一種常用的并發(fā)控制機制,用于保護共享資源的訪問,在本文中,我們將深入探討Mutex互斥鎖的原理、日常使用、鎖結構以及運行機制,需要的朋友可以參考下
    2023-12-12
  • Go語言基礎數(shù)組用法及示例詳解

    Go語言基礎數(shù)組用法及示例詳解

    這篇文章主要為大家介紹了Go語言基礎Go語言數(shù)組的用法及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2021-11-11

最新評論

加查县| 犍为县| 福建省| 合肥市| 富锦市| 广河县| 昭通市| 满城县| 潼关县| 宜城市| 冀州市| 天等县| 进贤县| 岗巴县| 塘沽区| 电白县| 三台县| 兖州市| 芜湖县| 尚义县| 吴江市| 海口市| 叙永县| 突泉县| 宜黄县| 三穗县| 平昌县| 平凉市| 遵义县| 当雄县| 封开县| 福鼎市| 南靖县| 海宁市| 南皮县| 宜兰县| 巩留县| 遂宁市| 盖州市| 门源| 曲松县|