Arjan van Wieringen
06/14/2021, 2:17 PMdata class Node(val name: String, val onClick: () -> Unit)
fun main() {
val a = Node("Foo") { println("Foo") }
val b = Node("Foo") { println("Foo") }
println(a == b) // prints "false"
}
Is there a way to obtain something similar?Adam Powell
06/14/2021, 2:29 PM@Composable
functions as a related optimizationYoussef Shoaib [MOD]
06/14/2021, 2:59 PMdata class Node private constructor(val name: String) {
lateinit var onClick: () -> Unit
private set
constructor(name: String, onClick: () -> Unit): this(name) {
this.onClick = onClick
}
}
fun main() {
val a = Node("Foo") { println("Foo") }
val b = Node("Foo") { println("Foo") }
println(a == b) // prints "true"
}
Also, I believe react-kotlin ran into that problem, and the workaround was to declare your functions as vals like this:
data class Node(val name: String, val onClick: () -> Unit)
val printFoo = { println("Foo") }
fun main() {
val a = Node("Foo", printFoo)
val b = Node("Foo", printFoo)
println(a == b) // prints "true"
}
Adam Powell
06/14/2021, 3:02 PMPetter Måhlén
06/15/2021, 7:16 AMArjan van Wieringen
06/15/2021, 1:33 PM