为此,使用三元运算符是否是一种好习惯:

answersCounter = answer.length != 0 ? ++answersCounter : answersCounter;

我经常问自己这个问题,因为它经常发生。或者,使用常规的if语句更好吗?对我来说,这看起来很干净。

最佳答案

这只是意见,但我认为像您一样编写增量代码的方式有点差劲。

将变量分配给自身的预递增版本会有些困惑。对我来说,最好的代码是最清晰的(必要时对优化的点头除外),有时简洁导致清晰,有时却没有(请参见用Perl编写的任何东西……我在说,有点儿)。

您是否曾经遇到过以下编程技巧问题:

int i = 5;
i += i++ + i;

还是类似的东西?而且,您自己想,谁将需要知道如何解决该问题,因为您何时将变量分配给自身的前后增量版本?我的意思是,您永远不会在真实代码中看到它,对吧?

好吧,您只是提供了一个示例。尽管它是可解析的,但它不是惯用语言,也不比简单的if更清晰。

例如。
if (answer.length != 0) answersCounter++;

当然,有些人不喜欢不带大括号的if语句,也不喜欢不带换行符的大括号,这可能就是您使用三进制结束的原因。需要重新评估具有编码样式的内容,尽管会导致(主观的)较差的代码,以避免产生一些回车符。

同样,这仅是意见,当然不是规则。

10-07 17:04