我不明白如何go比较匿名结构。我试图理解这段代码:
package main
import (
"fmt"
)
type foo struct {
bar string
}
func main() {
var x struct {
bar string
}
var y foo
fmt.Println(x == y) // this prints true
equals(x, y) // this prints false
}
func equals(a, b interface{}) {
fmt.Println(a == b)
}
Run Code Online (Sandbox Code Playgroud)
为什么会x == y产生收益true?它们具有不同的类型,因此我希望无法将它们进行比较。
而且,由于它们是平等的,为什么要抛弃它们以interface{}使其不平等?