iex
03/10/2019, 12:04 PMwhen clause, to be used in the right side?
when {
toFoo(line) != null -> elements.add(toFoo(line)) // reuse left side result instead?
}Pavlo Liapota
03/10/2019, 12:17 PMtoFoo(line) != null but just part of it tooFoo(line).
I would recommend to try to rewrite your code using different constructs.
For example, you can write
toFoo(line)?.let { elements.add(it) }iex
03/10/2019, 12:34 PMwhen expression, no?sitepodmatt
03/10/2019, 12:37 PMtoFoo(line).let { fooLine ->
when {
fooLine != null -> doSomething
else -> do2
}
}sitepodmatt
03/10/2019, 12:38 PMval fooLine = toFoo(line)
when {
fooLine != null -> doSomething
else -> do2
}iex
03/10/2019, 1:57 PMiex
03/10/2019, 1:58 PMiex
03/10/2019, 1:58 PMPavlo Liapota
03/10/2019, 2:06 PMby lazy for local variable
val fooLine by lazy { toFoo(line) }iex
03/10/2019, 2:13 PMiex
03/10/2019, 2:17 PMiex
03/10/2019, 2:17 PM