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

是否可以在 Golang 中别名 nil

是否可以在 Golang 中别名 nil

Go
UYOU 2022-09-05 17:07:14
在组织我的项目时,我在很多地方都观察到零比较。我希望替换为 或 。我尊重Golang的规格,但我很好奇我们是否可以做到这一点。nilNULLNull我已经为 做了 它,如下所示。interface{}context.Contexttype CON = context.Context type Any = interface{}
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超8个赞

你不能。您在那里显示的是类型别名。 不是类型。它是各种不同类型的值。你可能希望你可以做一个值为 的常量,类似于你如何做一个值的常量,但这是编译器明确不允许的:nilnil0

const NULL = nil

错误:const initializer cannot be nil

根据语言规范

有布尔常量、符文常量、整数常量、浮点常量、复杂常量和字符串常量。

这些类型都不能有值,因此常量是不可能的。nilnil

你也可以尝试创建一个保存值的变量,但是你会发现一个问题,如果你不声明变量的类型,它就不起作用:nil

var NULL = nil

错误:use of untyped nil

您可以通过向变量添加一个能够的类型来使其合法,但这样它将不再非常有用,因为它只能与该特定类型进行比较。nil


查看完整回答
反对 回复 2022-09-05
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号