在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
在Java中,数组可以这样初始化:
int numbers[] = new int[] {10, 20, 30, 40, 50}
Kotlin的数组初始化是怎样的?
当前回答
通过这种方式,可以在koltin中初始化int数组。
val values: IntArray = intArrayOf(1, 2, 3, 4, 5,6,7)
其他回答
值得一提的是,当使用kotlin内置程序(例如intArrayOf(), longArrayOf(), arrayOf()等)时,对于给定的大小,您不能使用默认值(或所有值为所需值)初始化数组,相反,您需要通过根据类构造函数调用来进行初始化。
// Array of integers of a size of N
val arr = IntArray(N)
// Array of integers of a size of N initialized with a default value of 2
val arr = IntArray(N) { i -> 2 }
我的回答补充了@maroun,这些是初始化数组的一些方法:
使用数组
val numbers = arrayOf(1,2,3,4,5)
使用严格的数组
val numbers = intArrayOf(1,2,3,4,5)
混合矩阵类型
val numbers = arrayOf(1,2,3.0,4f)
嵌套数组
val numbersInitials = intArrayOf(1,2,3,4,5)
val numbers = arrayOf(numbersInitials, arrayOf(6,7,8,9,10))
能够从动态代码开始
val numbers = Array(5){ it*2}
在Kotlin中有几种方法。
var arr = IntArray(size) // construct with only size
然后从用户或其他集合或任何你想要的地方获取初始值。
var arr = IntArray(size){0} // construct with size and fill array with 0
var arr = IntArray(size){it} // construct with size and fill with its index
我们也可以用内置函数创建数组,比如-
var arr = intArrayOf(1, 2, 3, 4, 5) // create an array with 5 values
另一种方式
var arr = Array(size){0} // it will create an integer array
var arr = Array<String>(size){"$it"} // this will create array with "0", "1", "2" and so on.
你也可以使用doubleArrayOf()或DoubleArray()或任何基本类型来代替Int。
当初始化下面的字符串检查
val strings = arrayOf("January", "February", "March")
我们可以使用原始int数组专用的arrayOf方法简单地初始化它:
val integers = intArrayOf(1, 2, 3, 4)
你可以像这样创建一个Int数组:
val numbers = IntArray(5, { 10 * (it + 1) })
5是Int数组的大小。函数是元素init函数。“it”范围在[0,4],加上1 make范围在[1,5]
原点函数为:
/**
* An array of ints. When targeting the JVM, instances of this class are
* represented as `int[]`.
* @constructor Creates a new array of the specified [size], with all elements
* initialized to zero.
*/
public class IntArray(size: Int) {
/**
* Creates a new array of the specified [size], where each element is
* calculated by calling the specified
* [init] function. The [init] function returns an array element given
* its index.
*/
public inline constructor(size: Int, init: (Int) -> Int)
...
}
定义在Arrays.kt中的IntArray类