42338


**環境**  
IntelliJ IDEA 2017.3.4  
Kotlin 1.2.30  
Windows 10 64bit

下記のようなBool値を反転させるコードを書くと、`Redundant 'if' statement`という提案が表示されます。

[code]

    class Foo {
        private var boolVar = false
    
        fun doSomething() {
            if (boolVar) {
                boolVar = false
            } else {
                boolVar = true
            }
        }
    }
    
[/code]

提案の詳細は下記の通りです。

[code]

    Redundant 'if' statement
    Reports if statements which can be simplified to single statements.
    For example:
        if (foo()) {
            return true
        } else {
            return false
        }
    
    can be simplified to
        return foo()
    
[/code]

提案の内容はわかるのですが、元コードとの関連がわかりません。  
なぜこの提案がされるのかと、改善方法について、何かわかりませんか？


CC BY-SA 3.0
2018-03-12T02:25:54.147
42332
2018-03-12T04:03:54.023
2018-03-12T02:50:23.247
3060
17238
question
kotlin intellij-idea
IDEAでKotlinのBool変数を反転させるコードを書くと"Redundant 'if' statement"という提案が表示される


提案の例は「ifの評価式でtrue/falseが決まるなら、`if～else`はわざわざ書かず、直接評価式の結果を返せばいいのでは？」と読めます。

実際のコードでは(元の)boolVarの反転を取ればいいようなので、`!`を使って以下の様に書き換えられるのではないでしょうか。

[code]

    fun doSomething() {
        boolVar = !boolVar
    }
    
[/code]


CC BY-SA 3.0
2018-03-12T04:03:54.023
42338
2018-03-12T04:03:54.023
3060
42332
answer