与reflect.TypeOf一起使用的空结构

&Duck{}和 和有什么不一样(*Duck)(nil)?有什么理由更喜欢一个吗?

前任:

    fmt.Println(reflect.TypeOf(&Duck{}) == reflect.TypeOf((*Duck)(nil)))//true
    fmt.Println(nil == (*Duck)(nil))//true
    fmt.Println(nil == &Duck{})//false


梦里花落0921
浏览 152回答 1
1回答

至尊宝的传说

&Duck{}指向一个“零”结构实例,但它肯定不是零!您可以为其分配值。你不能对 nil 指针做所有这些,不管它们具有相同的类型。如果您只是对检查类型感兴趣,我认为 nil 指针更有效,因为不涉及对象的分配。所以这归结为你到底想要做什么。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go