为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Go 输入 nil?

为什么 Go 输入 nil?

Go
烙印99 2021-06-27 12:59:18
为什么 Go 有类型 nil?为方便起见,它会抛出显式接口构造检查。untyped 的问题是nil什么,设计师想用 typed 解决什么问题nil?
查看完整描述

3 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

如果没有 typed-nil,就不能使用:=带有nil值的短赋值语句。


a := nil // Error: use of untyped nil

b := error(nil) // OK

同样,它启用以下单行:


result, err := "A good result", error(nil)

编写类似上面的内容有时可能会提供一些便利。


但是请注意,这nil不是一个关键字或文字-与围棋并没有有一个内置的或标准的类型化零值。Typed-nil 仅作为以下之一的结果存在:

  • 使用默认(“零值”)初始化声明可空类型变量

  • 分配nil(直接或间接)给一个类型化的值

  • nil标识符转换为类型(如上面的示例所示)。


查看完整回答
反对 回复 2021-07-05
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信