Ifvwm
07/18/2019, 5:04 AMIfvwm
07/18/2019, 5:08 AMToddobryan
07/18/2019, 5:14 AMEventCallback<T>
is actually an interface and the code is creating an anonymous class that implements it. Kotlin knows that you can just use a lambda instead and does.Toddobryan
07/18/2019, 5:17 AMfunc(..., f: (...) -> T)
(so f
is a function type and is the last argument in `func`'s parameter list), you can move f
outside the parentheses and include it as a block within curly braces after the close paren.Ifvwm
07/18/2019, 5:17 AMToddobryan
07/18/2019, 5:18 AMfunc
like this:
func(....) { (...) -> // these are arguments to f
... // and this part better return a T
}
Toddobryan
07/18/2019, 5:19 AMIfvwm
07/18/2019, 5:20 AMToddobryan
07/18/2019, 5:20 AMIfvwm
07/18/2019, 5:21 AMIfvwm
07/18/2019, 5:22 AMIfvwm
07/18/2019, 5:22 AMIfvwm
07/18/2019, 5:24 AMToddobryan
07/18/2019, 5:25 AMToddobryan
07/18/2019, 5:27 AMmemory.subscribeToEvent(
"FrontTactilTouched", (Float arg0) -> if (arg0 > 0) tts.say("ouch!"));
Toddobryan
07/18/2019, 5:27 AMIfvwm
07/18/2019, 5:27 AMIfvwm
07/18/2019, 5:30 AMIfvwm
07/18/2019, 5:30 AMIfvwm
07/18/2019, 5:31 AMIfvwm
07/18/2019, 5:32 AMToddobryan
07/18/2019, 5:32 AMToddobryan
07/18/2019, 5:33 AMIfvwm
07/18/2019, 5:33 AMIfvwm
07/18/2019, 5:35 AMToddobryan
07/18/2019, 5:36 AMIfvwm
07/18/2019, 5:36 AMIfvwm
07/18/2019, 5:36 AMIfvwm
07/18/2019, 5:37 AMToddobryan
07/18/2019, 5:38 AMIfvwm
07/18/2019, 5:38 AMToddobryan
07/18/2019, 5:40 AMEventCallback<Float>() { override fun onEvent(arg0: Float): Unit = if (arg0 > 0) println("ouch!") }
Toddobryan
07/18/2019, 5:42 AMnew
and converting the class body to a Kotlin function.Ifvwm
07/18/2019, 5:44 AMIfvwm
07/18/2019, 5:44 AMToddobryan
07/18/2019, 5:44 AMoverride
?Ifvwm
07/18/2019, 5:44 AMToddobryan
07/18/2019, 5:45 AMIfvwm
07/18/2019, 5:45 AMToddobryan
07/18/2019, 5:45 AMSiebelsTim
07/18/2019, 5:45 AMToddobryan
07/18/2019, 5:46 AMinterface
? I'm not sure.Toddobryan
07/18/2019, 5:46 AMToddobryan
07/18/2019, 5:48 AMmemory.subscribeToEvent(
"FrontTactilTouched",
arg0 -> if (arg0 > 0) println("ouch!") else println("1"))
and see if that works any better than the one with the type did.SiebelsTim
07/18/2019, 5:48 AMToddobryan
07/18/2019, 5:50 AMToddobryan
07/18/2019, 5:50 AMmemory.subscribeToEvent(
"FrontTactilTouched",
object: EventCallback<Float> {
override fun onEvent(arg0: Float): Unit = if (arg0 > 0) println("ouch!") else println("1")})
Toddobryan
07/18/2019, 5:50 AMIfvwm
07/18/2019, 5:52 AMToddobryan
07/18/2019, 5:55 AMmemory.subscribeToEvent(
"FrontTactilTouched",
EventCallback<Float> { if (it > 0) println("ouch!") else println("1") })
but these are the things about Kotlin that I haven't used much, yet.SiebelsTim
07/18/2019, 5:55 AMToddobryan
07/18/2019, 5:56 AMToddobryan
07/18/2019, 5:56 AMIfvwm
07/18/2019, 5:56 AMIfvwm
07/18/2019, 5:57 AMToddobryan
07/18/2019, 5:57 AMSiebelsTim
07/18/2019, 5:57 AMIfvwm
07/18/2019, 5:57 AMIfvwm
07/18/2019, 5:58 AMSiebelsTim
07/18/2019, 5:58 AMToddobryan
07/18/2019, 5:58 AMIfvwm
07/18/2019, 5:59 AMToddobryan
07/18/2019, 5:59 AMIfvwm
07/18/2019, 5:59 AMIfvwm
07/19/2019, 2:18 AMIfvwm
07/19/2019, 2:21 AMToddobryan
07/19/2019, 3:58 PM