在
if
语句中,我习惯于看到 x != null
,并将其读作“x 不为空”。
但是在函数名称中,必须说“NotNull”或“IsNotNull”来解释类似的状态感觉过于复杂。不仅因为它是两三个词,而且还带有一种用来表达积极概念的双重否定的感觉。
什么是好词,希望不是长词或复合词,其含义与“not null”相同?
我已经集思广益并拒绝了一些想法,以及原因:
“初始化”不太好,因为在大多数编程语言中,您可以将变量初始化为空。
“某物”可能意味着“不是什么都没有”,因此对你来说“不为空”,但其他人的解释可能会有所不同......
如果没有这样的词,那么您可以创建一个 - 欢迎您的建议,我相信人们会喜欢为他们最喜欢的词投票。
在 PHP 中,有一个名为
isset
的函数 - 我认为没有比这个更短的版本了。
我认为这是基于您的偏好,isset / is / set / exit / has / ...
但是你不认为代码的可读性更重要的是理解和编写,而不是缩短每个单词
Extant表示某事物存在。如果您认为 null 是一种不存在的状态,那么“现存”可以被认为是相反的。
有价值
这里需要注意的是 NULL 在某些语言中可能被视为一个值,因此普遍使用 VALUED 作为 NULL 的对立面是不合适的。
然而在 PHP 中,VALUED 明确反对 NULL。
我建议
is
或exists
。但与现有名称和语法有许多冲突。
要使
is
发挥作用,您需要将其发音为大写且粗体:
如果 (IS x) ...
在实践中,我认为
exists
会效果更好。
我会使用术语
usable
,因为在我看来,如果引用不为空,则它是可用的......
但作为一个非英语母语者,我无法真正评估我的建议的相关性。
我决定
isKnown
。
Set
与 Undefined
相反。
Null
是 Value
,因此它是 Set
,但它是一个 Unknown
值。
如果一个变量是
Known
,那么它就是 Set
(隐含),并且它是 not null
(未知)。
objects.js
// Is Known
this.isKnown = function(value) {
return !this.isUndefined(value) && !this.isNull(value);
}
// Is Undefined
this.isUndefined = function(value) {
return typeof value == 'undefined';
}
// Is Null
this.isNull = function(value) {
return value === null;
}
我使用 IsSet 作为方法名称。
相信我使用的可读性和缩写;
“Not Null” 尽可能
“NNull”或“NN” 当我需要缩写时
它并不漂亮,但至少它是明确的并且适合您对 Null 本身的定义。
“IsSet”似乎有点太接近变体的“Initialized”,或者布尔值的“True”
“标准的伟大之处在于标准有很多”- Anon
在我的Python脚本中因为我懒惰的写作
if value is not None:
我通常使用一个简单的函数,我称之为
def isReal(value):
...
当我使用这个函数时,我通常会在像这个玩具示例这样的上下文中
class Bandit:
def __init__(self):
self.gun = "magnum .44"
class Me:
def __init__(self):
self.gun = None
badGuy = Bandit()
# badGuy say to me: "shot, but if you can't, you die"
if isReal(Me().gun):
# Defend yourself
else:
# Im sorry bro
怎么样
plain
?
is_plain(value)
- 检查值是否不为空is_null(value)
- 检查值是否为空