Ответ
Да, лямбда может быть свойством в data class. Однако, нужно учитывать несколько нюансов:
- Лямбда не учитывается в автоматически генерируемых методах (
equals(),hashCode(),toString()). - Если лямбда участвует в
copy(), поведение может быть неожиданным из-за захвата контекста.
Пример:
data class User(
val name: String,
val onAction: () -> Unit
)
fun main() {
val user1 = User("Alice", { println("Hi!") })
val user2 = User("Alice", { println("Hello!") })
println(user1 == user2) // true, так как лямбды игнорируются
}