2
说数组初始化,我有以下的功能,让我创建矩阵:多线程在科特林
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()/400.0, y.toDouble()/400.0, 0.0)
}
我也不想允许为空,因为它的将是一个痛苦的稍后处理元素访问。
如何使用多线程/协程来初始化这样的矩阵,其中每个线程初始化矩阵的自己的矩形,而不允许矩阵单元的可空性?