if 문을 통해서 조건을 확인하는 작업을 많이 하는데 조건을 만족하는 식이 false 일때 사용하는 몇가지 방법이 있을것 같습니다.


  • 예를 들면
val condition: Boolean = false

if(condition.not()) {
    exec()
}

or

if(!condition) {
    exec()
}

이런식으로 표현이 가능할것 같은데요.
이렇게 작성을하면 코드에는 문제가 없지만 가독성 문제가 발생하게 됩니다.

표현식에서 condition을 왜곡하지 않고 그대로 표현하기 위해서 if not 의 형태가 있으면 좋을것 같아서 한번 구현해봤습니다.

fun ifNot(condition: Boolean, block: (() -> Unit)) {
    if(condition.not()) {
        block()
    }
}

// 사용
val condition = false

ifNot(condition) {
    println("success")
}

이런식으로 사용하게 되면 condition 을 건드릴 필요 없고 false 일때만 block 이 실행 되도록 처리가 가능합니다.

-> Code 보러가기