亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Go語(yǔ)言函數(shù)學(xué)習(xí)教程

 更新時(shí)間:2016年07月27日 11:59:10   作者:軒脈刃  
這篇文章主要介紹了Go語(yǔ)言函數(shù)基本用法,結(jié)合實(shí)例形式分析了Go語(yǔ)言函數(shù)的格式、定義、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Go語(yǔ)言函數(shù)基本用法。分享給大家供大家參考,具體如下:

這里要說一下是Go函數(shù)和一些其他語(yǔ)言不一樣的地方

1 函數(shù)格式不同

復(fù)制代碼 代碼如下:
func GetMsg(i int) (r string) {
    fmt.Println(i)
    r = "hi"
    return r
}

func說明這個(gè)是個(gè)函數(shù)

GetMsg是函數(shù)名

(i int) 函數(shù)接收一個(gè)int參數(shù)

(r string) 函數(shù)返回一個(gè)string類型返回值

2 函數(shù)可以返回多個(gè)返回值

這點(diǎn)和c,php都不一樣,和lua是一樣的

復(fù)制代碼 代碼如下:
func GetMsg(i int) (r string, err string) {
    fmt.Println(i)
    r = "hi"
    err = "no err"
    return r,err
}

3 defer的使用

defer的意思是"在函數(shù)退出時(shí)調(diào)用",特別用于對(duì)文件進(jìn)行讀寫操作的時(shí)候,需要在open之后要調(diào)用close操作,將close操作使用defer

復(fù)制代碼 代碼如下:
func ReadFile(filePath string)(){
    file.Open(filePath)
    defer file.Close()
    if true {
        file.Read()
    } else {
        return false
    }
}

這樣寫的意思是在file.Open后不立即調(diào)用close,當(dāng)return false的時(shí)候調(diào)用file.Close().這樣就有效避免了C語(yǔ)言中的內(nèi)存泄露問題。

4 比較難理解的:panic,recover和defer

defer的作用前面說得很清楚了。

Panic和Recover我們就將他們看成是其他語(yǔ)言中的throw和catch

下面這個(gè)例子:

復(fù)制代碼 代碼如下:
package main
import "fmt"
func main() {
    f()
    fmt.Println("Returned normally from f.")
}
func f() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered in f", r)
        }
    }()
    fmt.Println("Calling g.")
    g(0)
    fmt.Println("Returned normally from g.")
}
func g(i int) {
    if i > 3 {
        fmt.Println("Panicking!")
        panic(fmt.Sprintf("%v", i))
    }
    defer fmt.Println("Defer in g", i)
    fmt.Println("Printing in g", i)
    g(i + 1)
}

返回了:

復(fù)制代碼 代碼如下:
Calling g.
Printing in g 0
Printing in g 1
Printing in g 2
Printing in g 3
Panicking!
Defer in g 3
Defer in g 2
Defer in g 1
Defer in g 0
Recovered in f 4
Returned normally from f.

Panic拋出了信息,并且跳出函數(shù)。Recover接受到了信息,并且繼續(xù)處理。

這個(gè)例子理解了基本就掌握了Recover和Panic

希望本文所述對(duì)大家Go語(yǔ)言程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 詳解Go語(yǔ)言中調(diào)度器的原理與使用

    詳解Go語(yǔ)言中調(diào)度器的原理與使用

    這篇文章主要介紹了Go語(yǔ)言運(yùn)行時(shí)調(diào)度器的實(shí)現(xiàn)原理,其中包含調(diào)度器的設(shè)計(jì)與實(shí)現(xiàn)原理、演變過程以及與運(yùn)行時(shí)調(diào)度相關(guān)的數(shù)據(jù)結(jié)構(gòu),希望對(duì)大家有所幫助
    2023-07-07
  • Golang實(shí)現(xiàn)文件傳輸功能

    Golang實(shí)現(xiàn)文件傳輸功能

    這篇文章主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)文件傳輸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Golang中如何實(shí)現(xiàn)枚舉詳析

    Golang中如何實(shí)現(xiàn)枚舉詳析

    舉就是將數(shù)據(jù)值一一列出來,枚舉可以用來表示一些固定的值,枚舉是常量組成的,下面這篇文章主要給大家介紹了關(guān)于Golang中如何實(shí)現(xiàn)枚舉的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • GoLang反射機(jī)制深入講解

    GoLang反射機(jī)制深入講解

    這篇文章主要介紹了GoLang反射機(jī)制,反射是一種讓程序可以在運(yùn)行時(shí)( runtime )檢查其數(shù)據(jù)結(jié)構(gòu)的能力,通過反射可以獲取豐富的類型信息
    2022-12-12
  • golang中range在slice和map遍歷中的注意事項(xiàng)

    golang中range在slice和map遍歷中的注意事項(xiàng)

    今天小編就為大家分享一篇關(guān)于golang中range在slice和map遍歷中的注意事項(xiàng),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)

    golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn)

    這篇文章主要介紹了golang對(duì)etcd存取和數(shù)值監(jiān)測(cè)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Go語(yǔ)言如何處理HTTP身份驗(yàn)證教程示例

    Go語(yǔ)言如何處理HTTP身份驗(yàn)證教程示例

    這篇文章主要為大家介紹了Go語(yǔ)言如何處理HTTP身份驗(yàn)證教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • golang switch語(yǔ)句的靈活寫法介紹

    golang switch語(yǔ)句的靈活寫法介紹

    這篇文章主要介紹了golang switch語(yǔ)句的靈活寫法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • 使用Go實(shí)現(xiàn)優(yōu)雅重啟服務(wù)功能

    使用Go實(shí)現(xiàn)優(yōu)雅重啟服務(wù)功能

    這篇文章主要介紹了如何使用Go來實(shí)現(xiàn)優(yōu)雅重啟服務(wù),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Golang中for循環(huán)遍歷避坑指南

    Golang中for循環(huán)遍歷避坑指南

    這篇文章主要為大家詳細(xì)介紹了Golang中for循環(huán)遍歷會(huì)出現(xiàn)的一些小坑以及對(duì)應(yīng)的解決辦法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-05-05

最新評(píng)論