【问题标题】:What is better java syntax: if (isSomething() == false) { or if (!isSomething()) { [closed]什么是更好的 java 语法: if (isSomething() == false) { 或 if (!isSomething()) { [关闭]
【发布时间】:2015-07-29 21:13:38
【问题描述】:

如果你看

if (!x) {
if (x == false) {

看起来 !x 更好,但是

if (!isSomething()) {
if (isSomething() == false) {

您可以轻松监督!

怎么办?有推荐的吗?

【问题讨论】:

标签: java syntax coding-style


【解决方案1】:

隐藏的第三个选项是正确命名变量和方法。

代替

if (!isDisabled()) {
    ...
}

使用

if (isEnabled()) {
    ...
}

或者如果你想检查是否有负面影响:

boolean disabled = !isEnabled();
if (disabled) {
    ...
}

或添加两种方法:

boolean isDisabled() {
    return !isEnabled();
}

编辑:我发现了这个问题:Is it bad to explicitly compare against boolean constants e.g. if (b == false) in Java?

【讨论】:

  • +1 是的,我认为如果你有一个函数最好让它检查返回值是否为真,而不是如果它不是假,例如:if(isEnabled()){}
【解决方案2】:

我会坚持使用符号if (!isSomething()) {。如果您或其他人觉得难以阅读,您可以随时在“!”周围添加一点空格。为了让它脱颖而出:

if ( ! isSomething()) {if ( !isSomething()) {

此外,多个条件语句可能会因以下符号而变得不堪重负

if (isSomething() == false && isSomethingElse() == false && ..),

而它的替代方案简短而简洁。过了一会儿,读“!”就变得很自然了。以及“不是 isSomething() 而不是 isSomethingElse()”的陈述。

【讨论】:

  • “!”周围的空格 +1技巧,我从没想过这样做,但它可能很有用:)
【解决方案3】:

我不认为每个人都会遵循任何建议。

按照你的方式去做,就我个人而言,我会选择if (!isSomething()) 风格:)

特别是因为我已经选择了if (!x) 样式。

【讨论】:

  • +1 表示一致性参数。 Com'on, LaGrandMere, 差不多 1000 ;)
  • @VonC : 谢谢老兄,完成了,我得到了我的前 1000 分 :)
  • 是的,非常好!现在,如果你可以失去“嗨!” ;) 你会更符合这个问答网站的精神(只是关于答案)
  • @VonC :哈哈,我想我是一个绝望的喋喋不休的人:D
【解决方案4】:
if ( !isSomething() ) {

在我看来是最好的。这样你就可以保持字符倒计时,你的代码是可读的,并且!确实在开头突出,所以只需浏览代码,其他人就可以看到它的意图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多