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

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

Golang 與繼承

Golang 與繼承

Go
肥皂起泡泡 2021-11-01 16:37:33
我想在我的庫中提供一個(gè)可以“擴(kuò)展”的方法的基本結(jié)構(gòu)。此基礎(chǔ)結(jié)構(gòu)的方法依賴于來自擴(kuò)展結(jié)構(gòu)的方法。這在 Go 中是不可能直接實(shí)現(xiàn)的,因?yàn)榻Y(jié)構(gòu)體方法只能訪問結(jié)構(gòu)體自己的字段,而不是父結(jié)構(gòu)體。重點(diǎn)是具有我不必在每個(gè)擴(kuò)展類中重復(fù)的功能。我想出了這個(gè)模式,它工作得很好,但由于它的循環(huán)結(jié)構(gòu)看起來很復(fù)雜。我從未在其他 Go 代碼中找到類似的東西。這是非常不走的嗎?我可以采取什么不同的方法?type MyInterface interface {  SomeMethod(string)  OtherMethod(string)}type Base struct{  B MyInterface}func (b *Base) SomeMethod(x string) {  b.B.OtherMethod(x)}type Extender struct {  Base}func (b *Extender) OtherMethod(x string) {  // Do something...}func NewExtender() *Extender {   e := Extender{}  e.Base.B = &e  return &e}
查看完整描述

2 回答

?
qq_笑_17

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

很抱歉讓您失望,但您問錯(cuò)了問題。當(dāng)我開始編寫 Go 代碼時(shí),我遇到了類似的問題。

您不能簡單地將類層次結(jié)構(gòu)轉(zhuǎn)換為 Go 代碼,至少不會(huì)得到令人滿意的結(jié)果。通常在 Go 中有一種非常優(yōu)雅和簡單的方法來解決這些問題,但是要發(fā)現(xiàn)它們,您需要像以往那樣思考。

不幸的是,您的問題并沒有說明您要解決什么問題。您剛剛描述您希望如何解決它。因此我有點(diǎn)不愿意給出一個(gè)籠統(tǒng)的答案,因?yàn)樗粫?huì)導(dǎo)致慣用的 Go 代碼。我理解你是否對這個(gè)答案感到失望,但在我看來,這是你能得到的最有價(jià)值的答案:)



查看完整回答
反對 回復(fù) 2021-11-01
  • 2 回答
  • 0 關(guān)注
  • 193 瀏覽

添加回答

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