第二个值为 null 的三元运算符
Ternary operator with a null in 2nd value
假设,if statement
如下
if(true) { doSomething() }
我会写成
true ? doSomething() : null
两者的结果相同,但两者的目的肯定不同。
有人可以分享他们关于
的经验吗
null
有什么区别。这是一种不好的做法吗?
- 它是面向未来的代码吗,因为如果我将来必须为相反的情况添加功能。我可以直接替换
null
而不是写一个完整的 else statement
PS: It does not make a big difference to write an else case
either. So I hope answers or comments are not related to that.
if
是一个 语句 ,一个没有固有值的步骤列表。
a ? b : c
是一个 表达式 - 它的计算结果为 b
或 c
.
的值
三元运算符效果很好 你想使用条件结果的地方:
// After this line, `result` has either the return value of `doSomething` or `null`.
const result = value ? doSomething() : null
if
效果很好 你不需要使用结果的地方,你想 运行 在任何条件分支中的几个语句或者你想要链接几个 if/else if/else
条件。
In most languages 您可以将三元表达式链接起来以模仿 if/else if/else
,但这可能很难阅读。
三元运算符不是替代 if
(在许多方面)。尽管您可以编写各种模仿其他类型代码的 hack,但我无法想象任何有能力的程序员会想到在这里使用三元而不是正常的、完全可读且有效的 if 子句。
应该注意的是,三元运算符并不是一个非常强大的工具。有时它可以让您以更短的方式编写一些代码,但这几乎不是尝试在所有可能的地方使用它的理由。
除此之外:
true ? doSomething() : null
只会让大多数读者感到惊讶;不管用什么编程语言。
从这个意义上说:这是 "bad" 风格的一个很好的例子;这对您的源代码 readability/clearness 没有帮助。让你的读者感到惊讶(从这个意义上说)不是一个好主意:
假设,if statement
如下
if(true) { doSomething() }
我会写成
true ? doSomething() : null
两者的结果相同,但两者的目的肯定不同。
有人可以分享他们关于
的经验吗null
有什么区别。这是一种不好的做法吗?- 它是面向未来的代码吗,因为如果我将来必须为相反的情况添加功能。我可以直接替换
null
而不是写一个完整的else statement
PS: It does not make a big difference to write an
else case
either. So I hope answers or comments are not related to that.
if
是一个 语句 ,一个没有固有值的步骤列表。
a ? b : c
是一个 表达式 - 它的计算结果为 b
或 c
.
三元运算符效果很好 你想使用条件结果的地方:
// After this line, `result` has either the return value of `doSomething` or `null`.
const result = value ? doSomething() : null
if
效果很好 你不需要使用结果的地方,你想 运行 在任何条件分支中的几个语句或者你想要链接几个 if/else if/else
条件。
In most languages 您可以将三元表达式链接起来以模仿 if/else if/else
,但这可能很难阅读。
三元运算符不是替代 if
(在许多方面)。尽管您可以编写各种模仿其他类型代码的 hack,但我无法想象任何有能力的程序员会想到在这里使用三元而不是正常的、完全可读且有效的 if 子句。
应该注意的是,三元运算符并不是一个非常强大的工具。有时它可以让您以更短的方式编写一些代码,但这几乎不是尝试在所有可能的地方使用它的理由。
除此之外:
true ? doSomething() : null
只会让大多数读者感到惊讶;不管用什么编程语言。
从这个意义上说:这是 "bad" 风格的一个很好的例子;这对您的源代码 readability/clearness 没有帮助。让你的读者感到惊讶(从这个意义上说)不是一个好主意: