Kotlin中的二维Int数组

时间:2014-12-16 19:43:39

标签: arrays kotlin

在Kotlin中声明具有指定大小的二维Int数组是最简单的方法吗?

val board = Array(n, { IntArray(n) })

3 个答案:

答案 0 :(得分:19)

以下是创建2D数组的新顶级函数的源代码。当Kotlin遗失某些东西时,请延长它。然后为您要建议的内容添加YouTrack issues并跟踪状态。虽然在这种情况下它们并不比上面短得多,但至少为正在发生的事情提供了更明显的命名。

pkill -f "celery worker"

用法:

public inline fun <reified INNER> array2d(sizeOuter: Int, sizeInner: Int, noinline innerInit: (Int)->INNER): Array<Array<INNER>> 
    = Array(sizeOuter) { Array<INNER>(sizeInner, innerInit) }
public fun array2dOfInt(sizeOuter: Int, sizeInner: Int): Array<IntArray> 
    = Array(sizeOuter) { IntArray(sizeInner) }
public fun array2dOfLong(sizeOuter: Int, sizeInner: Int): Array<LongArray> 
    = Array(sizeOuter) { LongArray(sizeInner) }
public fun array2dOfByte(sizeOuter: Int, sizeInner: Int): Array<ByteArray> 
    = Array(sizeOuter) { ByteArray(sizeInner) }
public fun array2dOfChar(sizeOuter: Int, sizeInner: Int): Array<CharArray> 
    = Array(sizeOuter) { CharArray(sizeInner) }
public fun array2dOfBoolean(sizeOuter: Int, sizeInner: Int): Array<BooleanArray> 
    = Array(sizeOuter) { BooleanArray(sizeInner) }

答案 1 :(得分:10)

目前这是最简单的方法,我们稍后将使用适当的功能扩展标准库

答案 2 :(得分:2)

是的,您给定的代码是声明二维数组的最简单方法。

下面,我给你一个2D阵列初始化和放大器的例子。印刷。

fun main(args : Array<String>) {
    var num = 100

    // Array Initialization
    var twoDArray = Array(4, {IntArray(3)})
    for(i in 0..twoDArray.size - 1) {
        var rowArray = IntArray(3)
        for(j in 0..rowArray.size - 1) {
            rowArray[j] = num++
        }
        twoDArray[i] = rowArray
    }

    // Array Value Printing
    for(row in twoDArray) {
        for(j in row) {
            print(j)
            print(" ")
        }
        println("")
    }

}