生成n * m数组

时间:2018-08-02 22:18:10

标签: kotlin functional-programming

我正在学习Kotlin,想知道是否有 functional 功能,例如“一行”创建一个n * m数组并将其映射到平面列表。

例如以下将创建20 * 30 = 600 Seat对象的列表。行/列变量以1开头。最好将变量名称“ it”直接替换为名称“ row” /“ col”。

val screen = Array(20, {
  val row = it + 1
  Array(30, {
    val col = it + 1
    Seat(row, col)
  }
}).flatten()

1 个答案:

答案 0 :(得分:1)

val screen = (1..20).flatMap { row -> (1..30).map { col -> Pair(row, col) } }
// screen = [ Pair(1, 1), Pair(1, 2), ... ]