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

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

如何將接口方法傳遞給函數(shù)?

如何將接口方法傳遞給函數(shù)?

Go
慕妹3146593 2022-05-17 16:59:27
我有一個界面如下:type visitable interface {    getName() string    getLookupMessage() string}我想制作一個帶有類似簽名的函數(shù),apply(visitable []visitable, function ???)它接受可訪問的函數(shù)(例如 getName 或 getLookupMessage)作為第二個參數(shù)。我可以在技術(shù)上做到這一點(diǎn)嗎?如果是,如何?
查看完整描述

1 回答

?
呼如林

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

是的,在這種特定情況下,您可以使用方法表達(dá)式。這是有效的,因為兩個接口方法具有相同的簽名,即兩者的類型visitable.getName和visitable.getLookupMessage是func(visitable) string:


package main


type visitable interface {

    getName() string

    getLookupMessage() string

}


func apply(vs []visitable, m func(visitable) string) {

    for _, v := range vs {

        m(v)

    }

}


func main() {

    apply(nil, visitable.getName)

    apply(nil, visitable.getLookupMessage)

}

然而,考慮到它是多么微不足道apply,目前還不清楚為什么這會有用,特別是考慮到這不適用于具有不同簽名的方法。


查看完整回答
反對 回復(fù) 2022-05-17
  • 1 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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