arrays - Kotlin 中的二维 Int 数组

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

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

最佳答案

这里是用于创建二维数组的新顶级函数的源代码。当 Kotlin 缺少某些东西时,扩展它。然后添加YouTrack issues对于您想要建议和跟踪状态的事情。虽然在这种情况下它们并没有比上面的短很多,但至少为正在发生的事情提供了一个更明显的命名。

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) }

及用法:

public fun foo() {
    val someArray = array2d<String?>(100, 10) { null }
    val intArray = array2dOfInt(100, 200)
}

https://stackoverflow.com/questions/27512636/

相关文章:

android - 监听器绑定(bind);找不到二传手

kotlin - Kotlin 中的静态数据

kotlin - Kotlin中调用父类(super class)构造函数,Super不是表达式

annotations - Kotlin 注释 IntDef

android - 更新到 AS 3.0 Canary 6 后 transformClassesWi

exception - Kotlin - 抛出自定义异常

kotlin - 在 Kotlin 中带有参数的单例

kotlin - 在 Kotlin 中处理可为空或空列表的惯用方式

kotlin - 如何在 Kotlin 中替换字符串中的重复空格?

android - Kotlin - 如何在 ViewPager 中添加 OnPageChangeL