欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

golang 反射_golang原理篇- nil:接口类型和值类型的区别

发布时间:2024/4/11 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 golang 反射_golang原理篇- nil:接口类型和值类型的区别 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 interface接口类型是golang的最重要的数据结构,底层是value和type组成,实现interface的struct的实例都能赋值给接口类型的变量,实现动态value的能力。type记录value的类型。

int 3 的接口表示是(int, 3),接口的零值是 (nil, nil);就是说一个interface的nil是 type和value都是nil,所以会出现nil的interface和值的nil比较的时候永远不等。

var i interface{} var p *int fmt.Println(p == nil) fmt.Println(i == nil) fmt.Println(i == p) i = p println(i != nil) // true fmt.Println(i.(*int) == nil)

 指针的零值是nil,可以通过反射将接口转换成指针类型

总结

以上是生活随笔为你收集整理的golang 反射_golang原理篇- nil:接口类型和值类型的区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。