为啥叫可空?

Posted

技术标签:

【中文标题】为啥叫可空?【英文标题】:Why is it called nillable?为什么叫可空? 【发布时间】:2011-08-20 06:28:48 【问题描述】:

在 XML 模式中,您可以将元素标记为 nillable,这意味着它可以采用显式 NULL 值。请参阅nillable and minOccurs XSD element attributes 以获得很好的解释。

我很好奇的是为什么nillable?我总是看到 nillable 并认为这是一个错字!

编辑 我很欣赏nilnull 的同义词。我想知道为什么选择nil,而不是更常见的(在计算机科学中)null。特别是它应该是nilable(注意单L)!

【问题讨论】:

【参考方案1】:

它来自 nil,它是 null 的另一个术语,在 XML 中使用。我不认为有任何特定原因在不同的编程语言中比另一种更受欢迎。它只是一种表达方式。也用于一些运动中,表示0。http://en.wikipedia.org/wiki/Nil

【讨论】:

【参考方案2】:

我想知道为什么选择nil,而不是更常见的(在计算机科学中)null

这取决于您来自计算机科学的哪个部分!

如果您查看用函数式语言编写的程序,您会到处看到nil,而很少看到null。碰巧的是,XML 和它的所有兄弟姐妹(例如 XSLT)都与函数式语言密切相关。

【讨论】:

啊,这对功能性的人来说是惯用的吗?这是有道理的。【参考方案3】:

这个术语我们使用 XML WSDL。如果nillabletrue,那么我们也可以在参数中使用null值。我用过它,它对我有用。

【讨论】:

这不是他要求的。【参考方案4】:

Nil 与 null 具有相同的语言根。 Nil 来自拉丁语 nihil,意思是“无”。 “Null”虽然相关,但来自拉丁语中的“none”(字面意思是“ne-”意为“不”,“ullus”意为“任何东西”)。虽然它们在含义上相似,但它们有一些细微的差别。

在实际使用中,“null”在美国更为常见,而“nil”在欧洲更为常见。大多数人倾向于在软件开发术语中互换使用它们,但根据我的经验,在语言使用中“nil”更为常见。

【讨论】:

我是欧洲人,我没有听到任何人说“nil” 我仍然认为英国是欧洲的一部分:vocabulary.com/dictionary/nil【参考方案5】:

如果记忆有用,它被称为“nillable”,因为房间里的(一些)SQL 人员开始担心 XSD 中的相关概念与 SQL 中的相关概念之间可能存在混淆。他们威胁说,除非改名,否则他们会躺在路上阻止这项提议。因此,WG 更改了名称。

(在拼写问题上,我认为 nilable 会邀请长“i”的发音;我相信美式英语和英式英语都会在短重读元音之后经常加倍最后的单辅音。Cf. '标记','标记','标记','可标记'。)

【讨论】:

以上是关于为啥叫可空?的主要内容,如果未能解决你的问题,请参考以下文章

可空类型和三元运算符:为啥是`? 10:null`禁止? [复制]

prisma:为啥我不能将“null”设置为可空列的默认值?

为啥 C# 6.0 在使用 Null 传播运算符时不允许设置非 null 可空结构的属性?

为啥 C# 6.0 在使用 Null 传播运算符时不允许设置非 null 可空结构的属性?

为啥空字符串上的 .ToString() 会导致空错误,而 .ToString() 在具有空值的可空 int 上工作正常?

可空类型产生警告,因为项目已启用可空引用类型