如果我有一个清单:
val a: mutableListOf<Int> = (1,2,3,4)
我希望有一个新的列表b
与(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4)
在 python 中,你可以只拥有 a * 3
在 Kotlin 中如何实现这一点?
Jof*_*rey 13
首先想到的是创建一个列表列表并flatten-ing 它:
val count = 3
val a = listOf(1, 2, 3, 4)
val b = List(count) { a }.flatten()
println(b) // [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
由此您可以编写自己的*运算符:
operator fun <T> Iterable<T>.times(count: Int): List<T> = List(count) { this }.flatten()
Run Code Online (Sandbox Code Playgroud)
并像在 Python 中一样使用它:
val a = listOf(1, 2, 3, 4)
val b = a * 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |