如果我注释了 fmt.Printf 代码,输出将为 false。但如果取消这两行代码的注释,那就是真的。
为什么?fmt.Printf 可以工作吗?
这是代码:
package main
import "fmt"
func main() {
type s struct{}
s1 := new(s)
s2 := new(s)
// fmt.Printf("%p\n", s1)
// fmt.Printf("%p\n", s2)
fmt.Println(s1 == s2)
}
Run Code Online (Sandbox Code Playgroud)
我知道所有 struct{} 实例都有相同的 addr,所以它应该始终为真。