每当我看到使用三元运算符,他们往往允许隐式转换成布尔真或假支票的人,例如:的返回值和括号三元操作符
int a = 5;
return a ? true : false;
不过我听说这是很好的做法在许多情况下是明确的,例如检查指针是否为nullptr而不是隐式地执行布尔检查。考虑到这一点,我想做到以下几点:
int* ptr = nullptr;
return ptr == nullptr ? 0 : 1;
这看起来有点怪我,提出了一堆它解析这个究竟如何的问题。但我的主要问题是我需要括号围绕ptr == nullptr部分?如果没有必要,那么我认为这有助于澄清?或者更好,更简单:
return ptr ? 1 : 0;
谢谢。
您不需要'ptr == nullptr'周围的括号。话虽如此,如果它可以帮助您更清晰地阅读,请继续并添加它。 –
与运营商关键字标签无关。 –
我觉得别人编辑并添加了。谢谢你的帮助。 – Zebrafish