真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

golang中的函數(shù)-創(chuàng)新互聯(lián)

Go函數(shù)和一些其他語(yǔ)言不一樣的地方

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)云浮免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

1、函數(shù)格式不同

func GetMsg(i int) (r string) {
    fmt.Println(i)
    r = "hi"
    return r
 
}

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

GetMsg是函數(shù)名

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

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

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

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

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)行讀寫(xiě)操作的時(shí)候,需要在open之后要調(diào)用close操作,將close操作使用defer

func ReadFile(filePath string)(){
    file.Open(filePath)
    defer file.Close()
     
    if true {
        file.Read()
    } else {
        return false
    }
 
}

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

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

defer:推薦:go defer(go延遲函數(shù))介紹

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

下面這個(gè)例子:

ackage 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)
}

返回了:

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ù)處理。

以上就是go語(yǔ)言函數(shù)介紹的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!


本文名稱:golang中的函數(shù)-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://weahome.cn/article/dgosgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部