<分区>
像这样的代码是否会导致任何理解/可维护性问题
inVar1 == 0 ? NULL : v.push_back(inVar1);
inVar2 == 0 ? NULL : v.push_back(inVar2);
等等。
可能令人困惑的想法是将三元运算符用于程序流而不是变量赋值,这是通常的解释。
我还没有看到解决这种用法的编码标准,所以虽然我很乐意这样做,但我想看看是否有充分的理由不这样做。
<分区>
像这样的代码是否会导致任何理解/可维护性问题
inVar1 == 0 ? NULL : v.push_back(inVar1);
inVar2 == 0 ? NULL : v.push_back(inVar2);
等等。
可能令人困惑的想法是将三元运算符用于程序流而不是变量赋值,这是通常的解释。
我还没有看到解决这种用法的编码标准,所以虽然我很乐意这样做,但我想看看是否有充分的理由不这样做。
最佳答案
我认为这比简单地打字更令人困惑并且更难阅读;
if (inVar != 0)
v.push_back(inVar);
我不得不多次扫描您的示例,以确定结果是什么。我什至更喜欢单行 if() {} 语句而不是你的例子 - 我讨厌单行 if 语句:)
关于c# - 这是三元运算符的合理使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522919/