首页 > 其他 > 详细

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

时间:2020-10-12 17:25:12      阅读:32      评论:0      收藏:0      [点我收藏+]

  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原理篇- nil:接口类型和值类型的区别

原文:https://www.cnblogs.com/hellohell/p/13802917.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!