今天在看beego config模塊fake.go文件的時(shí)候,看到var _ Configer = new(fakeConfigContainer)這行代碼,一開(kāi)始不懂這行代碼的功能是什么那婉?
后面了解到這行代碼的作用是判斷fakeConfigContainer結(jié)構(gòu)體是否實(shí)現(xiàn)了Configer這個(gè)接口
案例:
type A interface {
Print()
}
type B struct {
}
func (B)Print() {
}
var _ A = new(B)
解釋:
1)這樣寫的話,就可以確保B結(jié)構(gòu)實(shí)現(xiàn)了A接口俗孝,如果沒(méi)有實(shí)現(xiàn)的話匙奴,ide會(huì)提示報(bào)錯(cuò)或者編譯的時(shí)候會(huì)報(bào)錯(cuò)。
在另外一篇博客上看到一個(gè)擴(kuò)展內(nèi)容:
var _ A = (*B)(nil)