https://kotlinlang.org logo
Title
e

eygraber

06/20/2018, 5:09 AM
Anyone notice any code smells here? I was messing around trying to get an
unless
-like operator:
sealed class Unless {
  object unless : Unless() {
    override val run: Boolean = false
  }
  
  object other : Unless() {
    override val run: Boolean = true
  }
  
  abstract val run: Boolean
}

inline infix fun Unless.otherwise(block: () -> Unit) {
  if(run) block()
}

inline fun unless(predicate: Boolean, block: () -> Unit): Unless =
    if(!predicate) {
      block(); Unless.unless
    }
    else {
      Unless.other
    }
g

gildor

06/20/2018, 5:22 AM
Soo, is it just inverted if/else? if (!something) { // Do something } else { // do something else }