判斷Golang接口是否實(shí)現(xiàn)

今天在看beego config模塊fake.go文件的時候,看到var _ Configer = new(fakeConfigContainer)這行代碼,一開始不懂這行代碼的功能是什么?

后面了解到這行代碼的作用是判斷fakeConfigContainer結(jié)構(gòu)體是否實(shí)現(xiàn)了Configer這個接口

案例:

  type A interface {
    Print()
}

type B struct {
}

func (B)Print()  {
}

var _ A = new(B)

解釋:
1)這樣寫的話,就可以確保B結(jié)構(gòu)實(shí)現(xiàn)了A接口,如果沒有實(shí)現(xiàn)的話,ide會提示報錯或者編譯的時候會報錯。

另外一篇博客上看到一個擴(kuò)展內(nèi)容:

var _ A = (*B)(nil)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容