用于Kotlin中的数据类应用

时间:2019-05-28 12:38:54

标签: kotlin

我知道如何在普通的Kotlin类上使用apply函数,但无法在数据类中使用它:

data class Person(name: String)

val person = Person().apply {
    name = "Tony Stark" 
}

我收到以下编译消息:

  

没有传递参数'name'的值

2 个答案:

答案 0 :(得分:2)

问题在于name仅是构造函数参数,而不是属性,无论如何对于数据类概念都是无效的。像这样修复:

data class Person(val name: String)

答案 1 :(得分:1)

apply函数的作用与任何类相似。但是您的代码段中有一些错误:

  1. Person构造函数中的参数未提到为varval,因此该类中没有字段name。使var能够更改值会更好。
  2. 您使用1个参数创建了类的构造函数,但尝试使用空的构造函数-这是错误的。