对于android中的java类,我们习惯在Activity之类声明一个int数组,int[] intarray;
并使用intArray = new Int(size)创建所需的对象.
我知道在kotlin中使用数组我需要做类似的事情
val numbers: IntArray = intArrayOf(10, 20, 30, 40, 50)
Run Code Online (Sandbox Code Playgroud)
我无法做的只是全局声明对象,即
val numbers: IntArray
Run Code Online (Sandbox Code Playgroud)
在kotlin中,我们声明变量,val a: Int = 1但是如基本语法教程所示,它不允许我只声明变量val c: Int,然后在需要时初始化它.它给了我错误
财产必须初始化或抽象
声明部分我错了.因为它不允许我只定义val numbers: IntArray.谁能告诉我哪里出错了?
A val是只读值,因此必须立即初始化,因为它只应设置一次.如果在Activity创建数组时无法立即初始化数组,则应将其设为a var.
这仍然需要初始化:例如,您可以使用空数组初始化它作为默认值.
var numbers: IntArray = intArrayOf()
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用lateinit关键字对其进行标记,以表明您尚未分配任何内容,但是您知道它将在您第一次使用之前进行初始化,并且您负责:
lateinit var numbers: IntArray
Run Code Online (Sandbox Code Playgroud)
最后,你可以使它成为可以为空的IntArray,并用它初始化它null.在这里,编译器将保存您不会访问它null,但每次访问它时,您将被迫处理它可能的事实null.
var numbers: IntArray? = null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |