今天在看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)