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

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

Golang接口轉(zhuǎn)換錯(cuò)誤:缺少方法

Golang接口轉(zhuǎn)換錯(cuò)誤:缺少方法

Go
Helenr 2022-10-10 10:32:31
看看這個(gè)片段:package maintype Interface interface {    Interface()}type Struct struct {    Interface}func main() {    var i interface{} = Struct{}    _ = i.(Interface)}structStruct有一個(gè)嵌入的成員實(shí)現(xiàn)接口Interface。當(dāng)我編譯這個(gè)片段時(shí),我得到一個(gè)錯(cuò)誤:panic: interface conversion: main.Struct is not main.Interface: missing method Interface這看起來很奇怪,因?yàn)?struct應(yīng)該從嵌入的接口Struct繼承方法。InterfaceInterface我想知道為什么會(huì)發(fā)生這個(gè)錯(cuò)誤?它是在 golang 中設(shè)計(jì)的還是只是 golang 編譯器的錯(cuò)誤?
查看完整描述

1 回答

?
千巷貓影

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

您不能同時(shí)擁有同名的字段和方法,當(dāng)您嵌入X提供方法的命名時(shí)會(huì)發(fā)生這種情況X()。


如所寫。Struct{}.Interface是一個(gè)領(lǐng)域,而不是一個(gè)方法。沒有Struct.Interface(),只有Struct.Interface.Interface()。


重命名您的界面。例如,這很好用:


package main


type Foo interface {

    Interface()

}


type Struct struct {

    Foo

}



func main() {

    var i interface{} = Struct{}

    _ = i.(Foo)

}


查看完整回答
反對 回復(fù) 2022-10-10
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

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