成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Go匿名函數(shù)與閉包的使用-創(chuàng)新互聯(lián)

匿名函數(shù): 沒有函數(shù)名的函數(shù)
基本概念
閉包是可以包含自由(未綁定到特定對象)變量的代碼塊,這些變量不在這個代碼塊內(nèi)或者
任何全局上下文中定義,而是在定義代碼塊的環(huán)境中定義。要執(zhí)行的代碼塊(由于自由變量包含
在代碼塊中,所以這些自由變量以及它們引用的對象沒有被釋放)為自由變量提供綁定的計算環(huán)
境(作用域)。
閉包的價值
閉包的價值在于可以作為函數(shù)對象或者匿名函數(shù),對于類型系統(tǒng)而言,這意味著不僅要表示
數(shù)據(jù)還要表示代碼。支持閉包的多數(shù)語言都將函數(shù)作為第一級對象,就是說這些函數(shù)可以存儲到
變量中作為參數(shù)傳遞給其他函數(shù),最重要的是能夠被函數(shù)動態(tài)創(chuàng)建和返回。

成都創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計,景洪網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:景洪等地區(qū)。景洪做網(wǎng)站價格咨詢:028-86922220
package main

import (
    "fmt"
)

func main() {

    a := 10
    str := "make"

    //匿名函數(shù),沒有函數(shù)名字,函數(shù)定義,還沒有調(diào)用
    f1 := func() {
        fmt.Println("a=",a)
        fmt.Println("str=",str)
    }

    f1()

    // 給一個函數(shù)類型起別名
    type FuncType func()  // 函數(shù)沒有參數(shù),沒有返回值

    // 聲明變量

    var f2 FuncType
    f2 = f1
    f2()

    //定義匿名函數(shù),同時調(diào)用
    func() {
        fmt.Printf("a=%d,str=%s\n", a,str)
    }()  // 后面的()代表調(diào)用匿名函數(shù)

    // 帶參數(shù)的匿名函數(shù)
    f3 := func(i,j int) {
        fmt.Printf("i =%d, j=%d\n",i,j)
    }
    f3(1,2)

    //定義匿名函數(shù),同時調(diào)用
    func(i, j int) {
        fmt.Printf("i=%d,j=%d\n", a,j)
    }(10,20)  // 后面的()代表調(diào)用匿名函數(shù)

    //匿名函數(shù),有參數(shù)有返回值
    x,y := func(i, j int) (max, min int){
        if i > j{
            return i,j
        }else {
            return j,i
        }
    }(10,20)
    fmt.Println(x,y)

}

閉包

package main

import "fmt"

func test01() func() int {
    var x int  // 沒有初始化, 值為0

    return func() int {
        x++
        return x * x
    }
}

func test02() int {
    var x int
    x++
    return x *x
}

func main() {
    // 返回值為一個匿名函數(shù),返回一個函數(shù)類型,通過f來調(diào)用返回的匿名函數(shù)
    // 它不關(guān)心這些捕獲了的變量和常量是否超出了作用域
    // 所以只要閉包還在使用它,這些變量就還會存在

    f := test01()
    fmt.Println(f())  //1
    fmt.Println(f())  //4
    fmt.Println(f())  //9
    fmt.Println(f())  //16

    // 用完就釋放了,每次調(diào)用還是1
    fmt.Println(test02())
    fmt.Println(test02())
    fmt.Println(test02())

}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:Go匿名函數(shù)與閉包的使用-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://jinyejixie.com/article42/jgiec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站收錄、標(biāo)簽優(yōu)化虛擬主機、響應(yīng)式網(wǎng)站自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營
金平| 南乐县| 牡丹江市| 武清区| 婺源县| 九江市| 临湘市| 巨鹿县| 中阳县| 保德县| 吉木萨尔县| 分宜县| 河津市| 墨玉县| 从化市| 韶山市| 克什克腾旗| 凌海市| 陆丰市| 博兴县| 孝义市| 成武县| 革吉县| 陆良县| 汤原县| 封丘县| 曲靖市| 贺兰县| 博客| 伊金霍洛旗| 珠海市| 灵武市| 巴林右旗| 广昌县| 青州市| 南丹县| 衡山县| 永定县| 晋江市| 宿州市| 文成县|