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

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

如何從同一地圖內(nèi)的另一個(gè)函數(shù)調(diào)用存儲(chǔ)在地圖中的函數(shù)

如何從同一地圖內(nèi)的另一個(gè)函數(shù)調(diào)用存儲(chǔ)在地圖中的函數(shù)

Go
慕田峪7331174 2022-06-13 15:49:18
我正在嘗試從同一張地圖中定義的另一個(gè)函數(shù)調(diào)用地圖中定義的函數(shù)。但是 Go 編譯器說:“初始化循環(huán)”。這是代碼:package mainimport ...var calls = map[string]func(arg string) (interface[], error) {    "function1": func(arg string) (interface{}, error) {         // do stuff         return res, nil     },    "function2": func(arg string) (interface{}, error) {         res, error := calls["function1"](arg) // HERE IS THE ERROR         return res, nil     },}如何從地圖內(nèi)部調(diào)用其他函數(shù)?var 調(diào)用,不在函數(shù)內(nèi)部
查看完整描述

2 回答

?
波斯汪

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

在更正您的代碼以便它甚至可以編譯之后(即替換interface[]為interface{},并刪除一些未定義的變量等),實(shí)際錯(cuò)誤與初始化循環(huán)無關(guān)。確切的錯(cuò)誤實(shí)際上是(參見操場示例):


./prog.go:10:25:未定義:調(diào)用


(如果您實(shí)際上收到有關(guān)初始化循環(huán)的錯(cuò)誤而不是此錯(cuò)誤,則可能意味著您粘貼的代碼實(shí)際上與您的實(shí)際代碼不夠接近,因此請使用最小的、可重現(xiàn)的示例更新問題。)


對此的解決方案是calls在定義引用它的函數(shù)之前進(jìn)行定義。這很容易通過預(yù)定義calls為空地圖(游樂場鏈接)來完成:


    calls := make(map[string]func(string) (interface{}, error), 0 )

    calls = map[string]func(arg string) (interface{}, error) {

        "function1": func(arg string) (interface{}, error) {

            // do stuff

            return nil, nil

        },

        "function2": func(arg string) (interface{}, error) {

            res, err := calls["function1"](arg) // HERE IS THE ERROR

            return res, err

        },

    }


查看完整回答
反對 回復(fù) 2022-06-13
?
狐的傳說

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

發(fā)生這種情況是因?yàn)樵诘貓D的初始化范圍內(nèi),尚未分配“調(diào)用”地圖。你可以有它如下:


f1 := func(arg string) (interface{}, error) {

    // do stuff

    return nil, nil

}

var calls = map[string]func(arg string) (interface{}, error) {

    "function1": f1,

    "function2": func(arg string) (interface{}, error) {

        res, error := f1(arg)

        return res, nil

    },

}

這樣你就不需要在你的范圍內(nèi)有'calls'映射來獲得'f1'值


查看完整回答
反對 回復(fù) 2022-06-13
  • 2 回答
  • 0 關(guān)注
  • 114 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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