为什么全局变量a1不等于局部变量a2,而a2等于a3和a4
我很困惑,a1,a2,a3都是通过调用getInterface方法计算的,但是比较它们时,却得到了不同的结果。
谢谢大家看到这个问题。
import "fmt"
var a1 aInterface = getInterface()
type aInterface interface {
fun1()
}
type aInterfaceImpl struct{}
func (p *aInterfaceImpl) fun1() {
return
}
func getInterface() aInterface {
return new(aInterfaceImpl)
}
func main() {
var a2 aInterface = getInterface()
var a3 aInterface = getInterface()
var a4 aInterface = new(aInterfaceImpl)
fmt.Printf("a1 == a2, %+v\n", a1 == a2) // a1 == a2, false
fmt.Printf("a2 == a3, %+v\n", a2 == a3) // a2 == a3, true
fmt.Printf("a2 == a4, %+v\n", a2 …Run Code Online (Sandbox Code Playgroud)