You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何便捷创建指定值矩阵 简化intArrayOf重复书写

Kotlin 二维Int数组简化创建方案

你期望的arrayOf<IntArray>((4, 5), (5, 8))这类直接用括号包裹行元素的写法Kotlin原生不支持:Kotlin中括号仅用于调整运算优先级、包裹参数列表,没有提供可变长度元组/数组字面量语法,无法直接实现该形式。不过可以通过两种轻量方案大幅简化写法,避免重复书写intArrayOf:

  • 通用方案(不限制每行元素个数)
    先在代码顶层定义一个极短命名的包装函数,对intArrayOf做一层薄封装:

    // 函数名可以按习惯取短,比如i、ia、row均可
    fun i(vararg elements: Int) = intArrayOf(*elements)
    

    后续创建矩阵的代码可以简化为:

    val matrix = arrayOf(
        i(4, 5),
        i(5, 8),
        i(1, 9),
        i(8, 10),
        i(1, 6)
    )
    

    该方案没有额外运行时开销,不管每行有多少个元素都能正常使用,是通用性最高的写法。

  • 固定行长度方案(适配示例中每行2个元素的场景)
    如果你要创建的矩阵每行元素个数固定,可以结合标准库的中缀函数封装专门的二维数组创建方法。比如每行固定2个元素时:

    fun intMatrix2D(vararg rows: Pair<Int, Int>): Array<IntArray> {
        return Array(rows.size) { 
            intArrayOf(rows[it].first, rows[it].second) 
        }
    }
    

    创建矩阵时写法更简洁:

    val matrix = intMatrix2D(
        4 to 5,
        5 to 8,
        1 to 9,
        8 to 10,
        1 to 6
    )
    

    如果每行固定为3个元素,将Pair替换为标准库的Triple,调整对应转换逻辑即可。


内容的提问来源于stack exchange,提问作者ibrahim koz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:45:38