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

Kotlin中如何访问二维数组单个元素?GameOfLife开发求助

在Kotlin中访问二维数组元素的问题解决

问题分析

你用arrayOf(arrayOf(...))创建二维数组的方式是完全正确的,Kotlin支持array[index][index]这种Java式的访问语法。代码无法运行的问题不在数组创建本身,而是出在你的Board类定义上。

解决方法

首先检查你的Board类,确保它正确接收并暴露Array<Array<Int>>类型的属性:

正确的Board类定义

class Board(val board: Array<Array<Int>>)

这里用val声明的board属性默认是公开(public)的,外部可以直接访问。此时你的测试代码:

val board = Board(
    arrayOf(
        arrayOf(2, 2, 2),
        arrayOf(2, 2, 2),
        arrayOf(2, 2, 2)
    )
)
println(board.board[2][2]) // 会正常输出2

常见错误原因

  1. 属性类型不匹配:如果Board类里的board属性被定义为List<List<Int>>而非Array<Array<Int>>,会导致类型编译错误——虽然List也支持[index][index]访问,但和你传入的数组类型不兼容。
  2. 属性私有:如果Board类的board属性用private修饰,外部无法直接访问,会出现编译错误。

更简洁的二维数组创建方式

Kotlin提供了更简洁的二维数组初始化语法,适合创建固定大小的生命游戏棋盘:

// 创建3x3的棋盘,所有元素初始值为2
val boardArray = Array(3) { Array(3) { 2 } }
val board = Board(boardArray)
println(board.board[2][2]) // 同样正常工作

内容的提问来源于stack exchange,提问作者Maciej Pelc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:10:34