`var allByDefault:Int?`导致错误?

时间:2017-12-24 10:29:02

标签: kotlin

在kotlin参考文献的Properties and Fields部分中,写了以下例子:

  

var allByDefault:Int? //错误:需要显式初始化程序,隐含默认getter和setter

但是,我测试了代码,编译和运行时没有错误。 这是我的代码“

fun main(args:Array<String>){
    var allByDefault:Int?
}

为什么文档会写:

  

错误:需要显式初始化程序,隐含默认getter和setter

我搜索谷歌寻求帮助,但没有找到任何可以帮助我的结果。

@toniedzwiedz的回答解决了这个问题。我的错。我误认为属性和变量。

1 个答案:

答案 0 :(得分:9)

fun main(args:Array<String>){
    var allByDefault:Int?
}

您在此处拥有的是var方法的main本地,而非属性。

class MyClass {

    //this is a property of MyClass that requires some means of initialization
    var allByDefault: Int? // Error: Property must be initialized or be abstract

    fun foo() {
       var local: Int? // this is a local variable defined in the scope of foo, which is fine
       // ...
    }
}