【发布时间】:2017-12-20 02:31:01
【问题描述】:
在三元条件的结果中使用方法是否被认为是不好的风格? 大致如下:
(node->parent()->left() == node ? node->parent()->left()
: node->parent()->right()).reset();
我知道代码风格可能是主观的,但我仍然希望我能得到一些建议,比如使用它,或者写一些类似的东西:
if (node–>parent()–>left() == node) {
node->parent()->left().reset()
} else {
node–>parent()->right().reset()
}
(来自评论)怎么样:
auto& childUnq = node->parent()->left() == node ? node->parent()->left()
: node->parent()->right();
childUnq.reset();
【问题讨论】:
-
为什么最后两个操作数相等,首先不需要三元运算符
-
@stackptr 我的错,我不小心又在那里写了同样的一个。
-
您还可以将条件的结果存储到变量中。您甚至不必用
auto拼出类型。
标签: c++ ternary-operator