你如何在Kotlin中制作2D Int数组?我正在尝试将此代码转换为Kotlin:
int[][] states = new int[][] { new int[]{-android.R.attr.state_pressed}, // not pressed new int[] { android.R.attr.state_pressed} // pressed }; int[] colors = new int[] { foregroundColor, accentColor, accentColor }; ColorStateList myList = new ColorStateList(states, colors);
这是我尝试过的一次尝试,其中第一个2D阵列不起作用,但我让1D阵列工作:
//This doesn't work: var states: IntArray = intArrayOf( intArrayOf(-android.R.attr.state_pressed), // not pressed intArrayOf(android.R.attr.state_pressed) // pressed ); //This array works: var colors: IntArray = intArrayOf( foregroundColor, accentColor, accentColor ); val myList: ColorStateList = ColorStateList(states, colors);
Tim.. 32
您正在尝试将IntArrays放在另一个数组中以使其成为二维的.该数组的类型不能是intArray,这就是失败的原因.用arrayOf
而不是包装你的初始数组intArrayOf
.
val even: IntArray = intArrayOf(2, 4, 6) val odd: IntArray = intArrayOf(1, 3, 5) val lala: Array= arrayOf(even, odd)
小智.. 29
您可以将此行代码用于Integer数组.
val array = Array(row, {IntArray(column)})
这行代码非常简单,就像一维数组一样,也可以像java二维数组一样访问.
您正在尝试将IntArrays放在另一个数组中以使其成为二维的.该数组的类型不能是intArray,这就是失败的原因.用arrayOf
而不是包装你的初始数组intArrayOf
.
val even: IntArray = intArrayOf(2, 4, 6) val odd: IntArray = intArrayOf(1, 3, 5) val lala: Array= arrayOf(even, odd)
您可以将此行代码用于Integer数组.
val array = Array(row, {IntArray(column)})
这行代码非常简单,就像一维数组一样,也可以像java二维数组一样访问.
简短答案:
// A 6x5 array of Int, all set to 0. var m = Array(6) {Array(5) {0} }
这是另一个示例,其中提供了有关发生的情况的更多详细信息:
// a 6x5 Int array initialise all to 0 var m = Array(6, {i -> Array(5, {j -> 0})})
第一个参数是大小,第二个lambda方法用于初始化。