2017-07-05 35 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,其中!幾乎是眼睛不可見的。