我知道如何在普通的Kotlin类上使用apply函数,但无法在数据类中使用它:
data class Person(name: String)
val person = Person().apply {
name = "Tony Stark"
}
我收到以下编译消息:
没有传递参数'name'的值
答案 0 :(得分:2)
问题在于name
仅是构造函数参数,而不是属性,无论如何对于数据类概念都是无效的。像这样修复:
data class Person(val name: String)
答案 1 :(得分:1)
apply
函数的作用与任何类相似。但是您的代码段中有一些错误:
Person
构造函数中的参数未提到为var
或val
,因此该类中没有字段name
。使var
能够更改值会更好。