如何定义kotlin全球范围内的arralist
对于Android中的java类,我们用来在Activity的顶部声明一个int数组,像int[] intarray;
并用intArray = new Int(size)创建对象。
我所知道的在kotlin中使用数组我需要做类似的事情
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
我无法做的只是全局的声明对象
val numbers: IntArray
在kotlin中,我们声明的变量如val a: Int = 1
但是,如基本语法教程中所示,它不允许我只声明像val c: Int
这样的变量,然后在需要时初始化它。它给我错误
属性必须被初始化或抽象
我在声明部分出错了。 因为它不让我只定义val numbers: IntArray
。 有人可以告诉我哪里出错吗?
你不能定义一个未初始化的常量变量。 更改以下行:
val numbers: IntArray
由这一个:
var numbers: IntArray? = null
那么,你可以修改数字变量值…
val
是一个只读值,因此它必须立即被初始化,因为它只能被设置一次。 如果在创建Activity
时无法立即初始化数组,则应将其设置为var
。
这仍然需要进行初始化:例如,可以使用空数组作为默认值进行初始化。
var numbers: IntArray = intArrayOf()
或者,您可以使用lateinit
关键字来标记它,以表明您还没有任何东西可以分配给它,但是您知道在第一次使用它之前它将被初始化,并且为此承担责任:
lateinit var numbers: IntArray
最后,你可以使它成为一个可空的IntArray,并用null
初始化它。 在这里,编译器会保存在null
时候访问它,但是每次访问它时,都会被迫处理它可能为null
的事实。
var numbers: IntArray? = null
val
是不可变的数据变量(只读)。 而是使用var
。 阅读定义局部变量的更多信息
所以你需要的是:
var numbers: IntArray? = null // This says numbers variable is nullable
你可以随时初始化它。