arekolek
07/04/2019, 7:59 PMwhen
and matching an object
from a sealed
class:
sealed class Foo {
object Bar : Foo()
data class Baz(val x: Int) : Foo()
}
fun usingEquality(foo: Foo) = when (foo) {
Foo.Bar -> 1
is Foo.Baz -> 2
}
fun usingInstanceOf(foo: Foo) = when (foo) {
is Foo.Bar -> 1
is Foo.Baz -> 2
}
Any reason to prefer 1️⃣ usingEquality
rather than 2️⃣ usingInstanceOf
? IDE generates usingEquality
, but doing a quick benchmark shows no difference, yet is Foo.Bar
is more useful, in case you decide later to make Bar
a data class
for example. What do you use?cbruegg
07/04/2019, 9:47 PM