婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Go語(yǔ)言函數(shù)學(xué)習(xí)教程

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

熱門(mén)標(biāo)簽:百度地圖標(biāo)注搜索關(guān)鍵詞 谷歌便利店地圖標(biāo)注 浙江人工智能外呼管理系統(tǒng) 騰訊外呼系統(tǒng)價(jià)格 電梯外呼訪客系統(tǒng) 最短的地圖標(biāo)注 成都呼叫中心外呼系統(tǒng)平臺(tái) ?兓? 電銷(xiāo)機(jī)器人可以補(bǔ)救房產(chǎn)中介嗎

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

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

1 函數(shù)格式不同

復(fù)制代碼 代碼如下:
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類(lèi)型返回值

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)行讀寫(xiě)操作的時(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
    }
}

這樣寫(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的作用前面說(shuō)得很清楚了。

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ì)有所幫助。

您可能感興趣的文章:
  • Go語(yǔ)言中的Slice學(xué)習(xí)總結(jié)
  • GO 語(yǔ)言學(xué)習(xí)指南
  • Go語(yǔ)言學(xué)習(xí)筆記之反射用法詳解
  • Go語(yǔ)言基礎(chǔ)學(xué)習(xí)教程
  • Go語(yǔ)言學(xué)習(xí)教程之聲明語(yǔ)法(譯)
  • golang新手不注意可能會(huì)出現(xiàn)的一些小問(wèn)題

標(biāo)簽:宜昌 紹興 邢臺(tái) 眉山 盤(pán)錦 七臺(tái)河 上海 雅安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go語(yǔ)言函數(shù)學(xué)習(xí)教程》,本文關(guān)鍵詞  語(yǔ)言,函數(shù),學(xué)習(xí)教程,語(yǔ)言,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語(yǔ)言函數(shù)學(xué)習(xí)教程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Go語(yǔ)言函數(shù)學(xué)習(xí)教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 平山县| 武强县| 安阳县| 新绛县| 深水埗区| 息烽县| 巩留县| 武平县| 德令哈市| 金昌市| 东光县| 四平市| 名山县| 如皋市| 定襄县| 凤城市| 荆州市| 高唐县| 朝阳市| 汉阴县| 马公市| 绍兴市| 利津县| 栾城县| 井冈山市| 桃江县| 什邡市| 襄樊市| 册亨县| 乐都县| 盐边县| 海南省| 茌平县| 砚山县| 虎林市| 延庆县| 永嘉县| 高安市| 玉林市| 凤凰县| 安顺市|