空(Nil)

如果一个引用什么都不指向,那么它的值为 nil 。 nil 是所有 ref 和 ptr 类型的默认值。 nil 值也可以像任何其他字面值一样使用。例如,它可以用在像 my Ref = nil 这样的赋值中。

解引用 nil 是一个不可恢复的运行时错误(而不是 panic)。

成功的解引用操作 p[] 意味着 p 不是 nil。可以利用它来优化代码,例如:

  1. p[].field = 3
  2. if p != nil:
  3. # 如果 p 是 nil , 那么 `p[]` 会导致错误
  4. # 所以这里的 `p` 永远不会是 nil
  5. action()

那么上述代码可以变成:

  1. p[].field = 3
  2. action()

注意: 这与 C 用于解引用 NULL 指针的 “未定义行为” 不具有可比性。