为什么 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
标识符转换为类型(如上面的示例所示)。
- 3 回答
- 0 关注
- 196 浏览
添加回答
举报
0/150
提交
取消