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

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

插件包中的 Lookup 返回什么?

插件包中的 Lookup 返回什么?

Go
桃花長(zhǎng)相依 2022-06-21 10:48:19
這是一個(gè)代碼塊。    p, err := plugin.Open(filename)    if err != nil {        log.Fatalf("cannot load plugin %v", filename)    }    xmapf, err := p.Lookup("Map")    if err != nil {        log.Fatalf("cannot find Map in %v", filename)    }    mapf := xmapf.(func(string, string) []mr.KeyValue)我知道這段代碼是加載一個(gè)插件并Map在其中找到一個(gè)函數(shù)。但我對(duì)此感到困惑xmapf.(func(string, string) []mr.KeyValue)。是什么類型的xmapf?golang 文檔說(shuō)它是一個(gè)Symbol, A Symbol 是一個(gè)指向變量或函數(shù)的指針。如果我對(duì) 的類型是正確的xmapf,為什么要func_pointer.(signature)返回一個(gè)函數(shù)?
查看完整描述

1 回答

?
萬(wàn)千封印

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

Plugin.Lookup()返回一個(gè)plugin.Symbol簡(jiǎn)單的空interface{}值:

type Symbol interface{}

Go 中還沒有泛型,因此這是必需的,因此您可以使用單個(gè)查找函數(shù)來(lái)查找任何類型的變量和函數(shù)。

并且您需要對(duì)返回的符號(hào)使用類型斷言以從中獲取具體(或其他接口)類型的值。

xmapf.(func(string, string) []mr.KeyValue)

這是一個(gè)類型斷言,如果它成立(如果xmapfnil成立并且它擁有一個(gè)具體類型的值func(string, string) []mr.KeyValue),那么類型斷言的結(jié)果將是該類型的一個(gè)值?!澳莻€(gè)”類型是一個(gè)函數(shù)類型,所以如果類型斷言成立,mapf將持有一個(gè)你可以“直接”調(diào)用的函數(shù)值,比如

var keyValues []mr.KeyValue
keyValues = mapf("a", "b")


查看完整回答
反對(duì) 回復(fù) 2022-06-21
  • 1 回答
  • 0 關(guān)注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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