请让我知道为什么这两个原因
var name: String
var age: Int
具有以下错误消息:
property must be initialized or abstract.
我想声明它们而无需初始化
主要:
data class Person(val _name: String,val _age: Int) {
var name: String
var age: Int
init {
name: String = _name.capitalize()
age: Int = _age * 10;
println("the name is: $name")
println("the age is: $age")
}
/*override fun toString(): String {
return "$name is $age years old."
}*/
}
答案 0 :(得分:0)
它还说:Unexpected tokens (use ';' to separate expressions on the same line)
和init
函数中的内容。
实际上,您显示的消息只是许多问题之一。由于init
函数已经损坏,编译器看不到分配,因此它也将声明本身标记为错误。
只需在init
中的赋值上省略“类型声明”(实际上只是代码不应该在其中;-)),它将编译:
data class Person(val _name: String,val _age: Int) {
var name: String
var age: Int
init {
name = _name.capitalize()
age = _age * 10;
println("the name is: $name")
println("the age is: $age")
}
/*override fun toString(): String {
return "$name is $age years old."
}*/
}