golang 关于 nil 的问题

Chaox 11天前 6

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 类型底层实现又是如何呢?

最新回复 (2)
  • darksword21 8天前
    引用 2
    好问题,楼下回答
  • elechi 8天前
    引用 3
    理解成空指针就行
    // Type must be a pointer, channel, func, interface, map, or slice type
    对应的,上面这些其实都是指针类型
  • 游客
    4
返回