任何人都有一个很好的技巧来记住标准的三元语法?
具体是否'?'或者':'是第一位的。多年来,我一直在倒退。
答案 0 :(得分:21)
你正在检查的条件有点像问题,所以问号首先出现。
x > 0 ? 1 : 0
将此陈述视为三个英语句子:“x是否大于0?然后1.其他,0。”你在声明中对每个条款都有一个句子。
谓词:
x > 0 ? /* Is x greater than 0? */
“真正的”分支:
1 /* Then 1. */
“假”分支:
: 0 /* Else, 0. */
答案 1 :(得分:9)
至于记住哪个符号首先出现,我只想到第一部分是一个问题,“这是真的吗?”,所以问号首先出现。
我以这种方式思考语法
Question ? Yes : No
答案 2 :(得分:0)
它是这样的:
myVariable = this.testMethod() ? 'value for true case' : 'value for false case'
答案 3 :(得分:0)
我把它读作普通的英文句子:
a equals b if condition is true else c
答案 4 :(得分:0)
以这种方式思考:三元语句由三部分组成:问题,如果问题的答案为“是”则执行代码,如果答案为“否”则执行代码。 “?”问题出现在英语句子之后。
答案 5 :(得分:0)
“?”是一个问号所以它意味着“如果”。
冒号意味着“现在它来了”,“然后做”。
关于三元运算符的好处是你不会被迫使用它,特别是如果你在记住语法时遇到问题。只需使用一个更易读的if语句。
不是 - 三元没有比if语句更好的表现。
答案 6 :(得分: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>
。
答案 7 :(得分:-1)
如果您在错误时仍然通过单元测试,那么要么无关紧要,要么您的测试没有覆盖足够的代码路径。如果在键入它和从测试中获得通过/失败之间存在太长的差距,那就是另一个问题。在存在良好,快速的测试的情况下,很少有一些语法很重要。