第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

這是一個(gè)閉包的例子嗎?

這是一個(gè)閉包的例子嗎?

Go
元芳怎么了 2021-06-14 14:38:47
我正在閱讀 Mark Summerfield 的 Go Section 5.6.3 中的 Programming 一書中的 Closure 示例。他將 Closure 定義為“一個(gè)函數(shù),它“捕獲”存在于創(chuàng)建它的同一作用域中的任何常量和變量,如果它引用它們的話。他說閉包的一種用途是匿名函數(shù)(或 Go 中的函數(shù)字面量)他舉了這樣的例子:addPng := func(name string) string { return name + ".png" }addJpg := func(name string) string { return name + ".jpg" }fmt.Println(addPng("filename"), addJpg("filename"))我知道命名的匿名函數(shù)addPng是字符串連接運(yùn)算符的包裝器+。如果我理解正確,他正在為匿名函數(shù)分配一個(gè)名稱,然后使用該名稱調(diào)用該函數(shù)。我看不出這個(gè)例子的意義。如果我定義相同的函數(shù)addPng并在內(nèi)部調(diào)用它,main()我會(huì)得到相同的結(jié)果:package mainimport ("fmt")func addPng (name string) string {    return name + ".png"    }func main() {    fmt.Println(addPng("filename"))}我知道我不能在另一個(gè)函數(shù)中定義和使用一個(gè)函數(shù)。但是為什么 Summerfield 示例中的匿名函數(shù)稱為“Closure”?為什么要使用包裝函數(shù)?我錯(cuò)過了什么?
查看完整描述

2 回答

?
千萬里不及你

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是使用閉包進(jìn)行狀態(tài)表示的示例。


package main


import "fmt"


func NextFibonacci() func() int {

    a, b := 0, 1

    return func() (f int) {

        f, a, b = a, b, a+b

        return

    }

}


func main() {

    nf := NextFibonacci()

    f := make([]int, 7)

    for i := range f {

        f[i] = nf()

    }

    fmt.Println(len(f), f)

}

輸出:


7 [0 1 1 2 3 5 8]


查看完整回答
反對(duì) 回復(fù) 2021-06-21
?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

這不是我第一次看到有人提到這本特定的書,其中引用的材料要么完全錯(cuò)誤,要么基本上完全沒有抓住要點(diǎn)。

讓我在這里停止談?wù)撨@本書,建議根本不要使用它。

有關(guān)閉包的正確定義,請(qǐng)參閱Wikipedia。注意形容詞“詞匯”。


查看完整回答
反對(duì) 回復(fù) 2021-06-21
  • 2 回答
  • 0 關(guān)注
  • 226 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)