为此,使用三元运算符是否是一种好习惯:
answersCounter = answer.length != 0 ? ++answersCounter : answersCounter;
我经常问自己这个问题,因为它经常发生。或者,使用常规的if语句更好吗?对我来说,这看起来很干净。
最佳答案
这只是意见,但我认为像您一样编写增量代码的方式有点差劲。
将变量分配给自身的预递增版本会有些困惑。对我来说,最好的代码是最清晰的(必要时对优化的点头除外),有时简洁导致清晰,有时却没有(请参见用Perl编写的任何东西……我在说,有点儿)。
您是否曾经遇到过以下编程技巧问题:
int i = 5;
i += i++ + i;
还是类似的东西?而且,您自己想,谁将需要知道如何解决该问题,因为您何时将变量分配给自身的前后增量版本?我的意思是,您永远不会在真实代码中看到它,对吧?
好吧,您只是提供了一个示例。尽管它是可解析的,但它不是惯用语言,也不比简单的
if
更清晰。例如。
if (answer.length != 0) answersCounter++;
当然,有些人不喜欢不带大括号的
if
语句,也不喜欢不带换行符的大括号,这可能就是您使用三进制结束的原因。需要重新评估具有编码样式的内容,尽管会导致(主观的)较差的代码,以避免产生一些回车符。同样,这仅是意见,当然不是规则。