bbaldino
03/13/2019, 3:54 AMbbaldino
03/13/2019, 3:55 AMclass Foo(
private val receiver: (Number.() -> Number)? = null
) {
fun doSomething(num: Number): Number {
// Call num.receiver() here if receiver is non-null
}
}
bbaldino
03/13/2019, 3:56 AMbbaldino
03/13/2019, 3:59 AMclass Foo(
private val receiver: (Number.() -> Number)? = null
) {
fun doSomething(num: Number): Number {
return receiver?.let { <http://num.it|num.it>() } ?: num
}
}
but wondering if there is a cleaner waysitepodmatt
03/13/2019, 4:20 AMreturn receiver?.invoke(num) ?: num
sitepodmatt
03/13/2019, 4:22 AMclass Foo(private val receiver: (Number.() -> Number)) {
fun doSomething(num: Number): Number {
return receiver?.invoke(num) ?: num
}
}
fun main(argv: Array<String>) {
val f = Foo({ this.toInt() * 2 })
println(f.doSomething(3))
}
bbaldino
03/13/2019, 4:30 AMsitepodmatt
03/13/2019, 4:40 AMreturn if(receiver != null) {
receiver(num)
} else {
num
}
bbaldino
03/13/2019, 6:04 AM