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