nil 的底层实现在源码中为:
// nil is a predeclared identifier representing the zero value for a
// pointer, channel, func, interface, map, or slice type.
var nil Type // Type must be a pointer, channel, func, interface, map, or slice type
// Type is here for the purposes of documentation only. It is a stand-in
// for any Go type, but represents the same type for any given function
// invocation.
type Type int
在源码中好像是 int 类型? 我的疑惑是 nil 在实际使用中是有类型区分的,可以把 nil 转换为不同类型的 nil 。那 nil 是接口类型还是 int 类型? 如果接口类型他的 data,type 是什么内容呢?如果是 int 类型底层实现又是如何呢?
1
darksword21 2020-11-19 11:39:04 +08:00
好问题,楼下回答
|
2
elechi 2020-11-19 13:30:00 +08:00
理解成空指针就行
// Type must be a pointer, channel, func, interface, map, or slice type 对应的,上面这些其实都是指针类型 |