如何在没有初始化程序的情况下实现变量?
我在Kotlin文档中找到了:
val c: Int // Type required when no initializer is provided
c = 3 // deferred assignment
但这不起作用。 IDE需要创建初始化程序。
答案 0 :(得分:4)
如果您要声明顶级属性,则需要将其初始化为声明的一部分。如果您要声明局部变量,可以稍后对其进行初始化:
fun foo() {
val c: Int
c = 3
}
答案 1 :(得分:2)
我只想在其他类
中为“C”赋值
val
可以两种方式使用(一起计算2和3):
对于局部变量,在这种情况下,在其他类中进行分配根本没有意义。您引用的文档涉及此案例。
对于具体属性,在这种情况下,它们可以与声明分开初始化,但只能在声明它们的类的init
block中进行初始化。
用于抽象属性。但在这种情况下,你不能从其他类中分配它们,但只能实现这些属性。
答案 2 :(得分:-1)
对于val
,您需要一起完成声明和作业。
对于您的情况,需要在声明部分之后修改此变量,因此var c: Int
会更好。