Tag: 多维数组

二维通用数组提供者

我试图在Kotlin中实现通用的二维数组提供程序: public fun <T> array2dim(sizeOuter: Int, sizeInner: Int): Array<Array<T>> = Array(sizeOuter) { Array(sizeInner) } 但无法弄清楚如何解决这个问题。 编译器说: 类型接口失败:没有足够的信息来推断构造函数中的参数T Array(size:Int,init:(Int)→T)请明确指定。

Kotlin中的多线程数组初始化

说,我有以下功能,让我创建矩阵: inline fun <reified T> Matrix2D(w: Int, h: Int, init: (Int, Int) -> T) = Array(w){ x -> Array(h){ y -> init(x, y) } } inline fun <reified T> Matrix2D(w: Int, h: Int, value: T) = Array(w){ Array(h){ value } } // For example: val m = Matrix2D(400, 400) { x, y -> Color(x.toDouble() / […]

Kotlin 2d数组初始化

请看看我的2D阵列初始化。 代码工作。 class World(val size_x: Int = 256, val size_y: Int = 256) { var worldTiles = Array(size_x, { Array(size_y, { WorldTile() }) }) fun generate() { for( x in 0..size_x-1 ) { for( y in 0..size_y-1 ) { worldTiles[x][y] = WorldTile() } } } } 问题是它运行初始化两次。 基本上我想在generate()函数中实例化WorldTile-Object。 所以3号线不应该在那里叫“新WorldTile”。 我怎样才能做到这一点? 还有,正确的Kotlin穿越2d阵列的方式? 谢谢 :)

在Kotlin拼合数组

我有一个节点的二维数组,我想使用Kotlin数组的flatten函数将其平铺到所有节点的单个数组中。 val nodes = kotlin.Array(width, { width -> kotlin.Array(height, { height -> Node(width, height) }) }) 然后我尝试调用二维数组上的扁平函数 nodes.flatten() 但我得到一个错误: Type mismatch: inferred type is Array<Array<Node>> but Array<Array<out ???>> was expected 。 还有另一种方法我应该这样做?