8

任何人都有记住标准三元语法的好技巧吗?

具体是否'?' 或 ':' 先出现。多年来,我一直在倒退。

4

8 回答 8

23

您正在检查的条件有点像一个问题,所以问号是第一位的。

x > 0 ? 1 : 0

将此语句视为三个英语句子:“x 是否大于 0?那么 1。否则,0。” 语句中的每个子句都有一个句子。

谓词:

x > 0 ? /* Is x greater than 0? */

“真实”分支:

1 /* Then 1. */

“假”分支:

: 0 /* Else, 0. */
于 2009-09-15T17:58:15.197 回答
10

至于记住哪个符号在前,我只想到第一部分是一个问题,“是不是真的?”,所以问号在前。

我以这种方式思考语法

Question ? Yes : No
于 2009-09-15T17:59:07.207 回答
0

它是这样的:

myVariable = this.testMethod() ? 'value for true case' : 'value for false case'
于 2009-09-15T17:58:15.710 回答
0

在 python 中,我把它读成一个普通的英文句子:

 a equals b if condition is true else c
于 2009-09-15T17:58:58.407 回答
0

可以这样想:一个三元语句由三部分组成:问题、如果问题的答案是“是”则要执行的代码和答案是“否”时的代码。这 ”?” 像在英语句子中一样出现在问题之后。

于 2009-09-15T17:59:13.213 回答
0

“?” 是一个问号,所以它的意思是“如果”。

冒号的意思是,“现在它来了”,“那么做”。

三元运算符的好处是您不必被迫使用它,尤其是当您在记住语法时遇到问题时。只需使用大多数时候更具可读性的 if 语句。

不 - 三元没有比 if 语句更好的性能。

于 2009-09-15T18:00:11.120 回答
0

三元运算符的语法是<condition> ? <if-true> : <if-false>

?意味着if

但是如果你把?一个表达式放在前面if,语法就变成了? <condition> <if-true> : <if-false>

<condition> <if-true>很难区分,所以你必须添加其他符号来分割它,这违背了三元运算符简化语法的目的。

所以我们必须?在它后面加上来来解决这个问题,所以它是一个倒置的设置,可以看作是(<condition> ?) <if-true> : <if-false>

上面写着:如果<condition>那么<if-true>,否则<if-false>

于 2021-04-14T00:50:48.267 回答
-1

如果你的单元测试在你出错时仍然通过,那么要么没关系,要么你的测试没有覆盖足够多的代码路径。如果在输入它和从测试中获得通过/失败之间有太长的差距,那是另一个问题。在存在良好、快速的测试的情况下,很少有语法细节很重要。

于 2009-09-15T18:32:44.627 回答