Android 如何在kotlin中全局定义arralist
对于android中的java类,我们通常在活动顶部声明一个int数组,比如int[]intarray; 并在需要时使用创建对象 intArray=新的Intsize 我所知道的是,在kotlin中,要使用数组,我需要做如下操作Android 如何在kotlin中全局定义arralist,android,kotlin,Android,Kotlin,对于android中的java类,我们通常在活动顶部声明一个int数组,比如int[]intarray; 并在需要时使用创建对象 intArray=新的Intsize 我所知道的是,在kotlin中,要使用数组,我需要做如下操作 val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50) 我不能做的只是全局声明对象 val numbers: IntArray 在kotlin中,我们声明了val a:Int=1之类的变量,但如基本语法教程所示,
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
我不能做的只是全局声明对象
val numbers: IntArray
在kotlin中,我们声明了val a:Int=1之类的变量,但如基本语法教程所示,它不允许我只声明val c:Int之类的变量,然后在需要时对其进行初始化。它会给我错误信息
属性必须初始化或抽象
我把申报部分弄错了。因为它不允许我只定义val编号:IntArray。有人能告诉我哪里出错了吗?不能定义未初始化的常量变量。更改以下行:
val numbers: IntArray
val numbers: IntArray
通过这个:
var numbers: IntArray? = null
lateinit var numbers: IntArray
因此,您可以修改数字变量值…val是只读值,因此必须立即初始化,因为它只应设置一次。如果在创建活动时无法立即初始化数组,则应将其设置为var
这仍然需要初始化:例如,您可以使用空数组作为默认值对其进行初始化
var numbers: IntArray = intArrayOf()
或者,您可以使用lateinit关键字对其进行标记,以表明您还没有任何要分配给它的内容,但您知道它将在您首次使用它之前初始化,并且您将为此承担责任:
lateinit var numbers: IntArray
最后,您可以将其设置为可为null的IntArray,并使用null初始化它。在这里,当它为null时,编译器将避免您访问它,但每次访问它时,您都将被迫处理它可能为null的事实
val是只读的不可变数据变量。相反,使用变量获取更多信息
因此,您需要的是:
var numbers: IntArray? = null // This says numbers variable is nullable
您可以随时初始化它。您不能定义未初始化的常量变量。更改以下行:
val numbers: IntArray
val numbers: IntArray
通过这个:
var numbers: IntArray? = null
lateinit var numbers: IntArray
因此,您可以随时进行初始化。哦,需要尝试lateinit,感谢您的详细解释:代码无法编译,您必须初始化variable@AlexTa这是一个输入错误,我更改了它。您没有初始化变量yetJava affect::