2017-07-05 34 views
-1

为什么我的if条件行中出现​​这个小错误?Kotlin简化布尔表达式

比如这个代码片段:

if (isClear==true){ 
    displayText.setText("") 
} 
+1

这不是一个错误,它是一个改进你的代码的建议。你可以点击它,它会为你做。 – voddan

+0

正如@voddan说的那样,它会起作用,但没有人这样做。 – Nicholas

回答

9

请尝试以下简单的布尔表达式,并避免错误:

if (isClear) { 
    displayText.setText("") 
} 

希望帮助!

-5

要处理布尔isClear在Kotlin中,可以使用以下表达式。

when(isClear) { 
true -> {} 
false -> {} 
} 

但是,如果isClear是可以为空的,我们可以使用下面的代码片段。

when(isClear) { 
true -> {} 
false -> {} 
null -> {} 
} 
+0

如果'isClear'变量为空,编译器会报错。这不是我们正在寻找的简化。 – guenhter

+0

感谢您使用此代码段,它可能会提供一些即时帮助。通过说明为什么这是一个很好的解决问题的办法,一个适当的解释会[大大提高](https://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)其教育价值,并会使其对未来具有相似但不相同问题的读者更有用。请编辑您的答案以添加解释,并指出适用的限制和假设。 – basvk

3

我只是想补充的是,在IDEA警告和错误的情况下,当你的光标,你可以调用的意图行动,在他们(Alt + Enter在Windows和Linux,Command + Return在Mac),以获得可能的修复。

在你的情况,带来了意向行动的警告将是这个样子:

Intention actions: simplify boolean expression

选择单一可用选项将执行转换到simplifed代码为您提供:

enter image description here

0

您可以禁用JetBrains IDEA中的警告:File → Settings... → Editor → Inspections → Kotlin → Style issues → Boolean expression that can be simplified

事实上,有些情况下非缩写代码更清晰。例如,我更喜欢false == aVeryLongVariableOrFunctionName!aVeryLongVariableOrFunctionName,其中!几乎是眼睛不可见的。