kotlin - 生成 n*m 数组
问题描述
我正在学习 Kotlin,想知道是否有一种功能性方式,例如“在一行中”创建一个 *m 数组并将其映射到一个平面列表。
例如,以下将创建 20*30=600 个 Seat 对象的列表。row/col 变量以 1 开头。最好将变量名称“it”直接替换为名称“row”/“col”。
val screen = Array(20, {
val row = it + 1
Array(30, {
val col = it + 1
Seat(row, col)
}
}).flatten()
解决方案
val screen = (1..20).flatMap { row -> (1..30).map { col -> Pair(row, col) } }
// screen = [ Pair(1, 1), Pair(1, 2), ... ]
推荐阅读
- javascript - Javascript 对象变量常量
- mongodb - 如何优化聚合查询以根据不同的键进行分组?
- java - GCP App Engine 上的 Spring Security 为每个请求挂起 30 多秒,然后出错
- sql - 雪花环境下sql查询数据校验
- c# - 有没有办法从 aspx.cs 更新引导进度条宽度?
- c - 使用 ffi 在 dart 中绑定 c 库的过程是什么?
- php - 如何在会话中存储多个表单 $_POST
- php - 如何在php中使用curl发送文件
- javascript - 无法显示正确的位置以显示实时计算结果使用 javascript
- javascript - *ngfor 中的角度分组数组切片