gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:05:31 25 4
gpt4 key购买 nike

&Duck{}(*Duck)(nil) 有什么区别?有什么理由偏爱其中之一吗?

例如:

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

最佳答案

&Duck{} 指向一个“零”结构实例,但它肯定不是 nil!您可以为其分配值。你不能对一个 nil 指针做所有这些,不管它们具有相同的类型这一事实。

如果您只对检查类型感兴趣,我认为 nil 指针更有效,因为不涉及对象分配。

所以这归结为你到底想做什么。

关于go - 与 reflect.TypeOf 一起使用的空结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com