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

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

將接口切片向下轉(zhuǎn)換為子接口切片

將接口切片向下轉(zhuǎn)換為子接口切片

Go
拉風(fēng)的咖菲貓 2022-04-26 15:50:25
我試圖更好地使用 Go 中的接口來描述特定的功能,并使用接口組合來編寫更好、更易于理解的代碼。我遇到了這個(gè)問題,這似乎是 go 接口的一個(gè)常見用例,但我似乎無(wú)法找出用于此應(yīng)用程序的正確語(yǔ)法。這里有一些代碼可以幫助解釋我正在嘗試做的事情:// Initializable is an interface to an object that can be initialized.type Initializable interface {    Initialize() error}// InitializeAll initializes an array of members.func InitializeAll(members []Initializable) error {    for _, member := range members {        err := member.Initialize()        if err != nil {            return err        }    }    return nil}// Host is an interface to an object providing a set of handlers for a web host.type Host interface {    Initializable    Hostname() string    RegisterHandlers(router *mux.Router)}// ConfigureHosts configures a set of hosts and initializes them.func ConfigureHosts(hosts []Host) (*mux.Router, error) {    err := InitializeAll(hosts) // compiler error here}這是錯(cuò)誤:cannot use hosts (type []Host) as type []Initializable in argument InitializeAll。我最初的想法是我缺少某種向下轉(zhuǎn)換的類型,我知道它適用于單個(gè)接口對(duì)象,但很難轉(zhuǎn)換數(shù)組。當(dāng)我嘗試做err := InitializeAll(hosts.([]Initializable))時(shí),我收到以下錯(cuò)誤:invalid type assertion: hosts.([]Initializable) (non-interface type []Host on left)。對(duì)于此代碼示例的設(shè)計(jì),我很感激任何想法,也許還有關(guān)于正確語(yǔ)法或我可以做一些重構(gòu)來解決這個(gè)問題的任何建議。謝謝!
查看完整描述

1 回答

?
翻過高山走不出你

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

我似乎無(wú)法弄清楚用于此應(yīng)用程序的正確語(yǔ)法

沒有這樣的語(yǔ)法。您根本無(wú)法(直接)執(zhí)行此操作。


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

添加回答

舉報(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)