如何在Kotlin中乘以列表

如果我有一个清单:

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 中如何实现这一点?

回答

首先想到的是创建一个列表列表并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]

由此您可以编写自己的*运算符:

operator fun <T> Iterable<T>.times(count: Int): List<T> = List(count) { this }.flatten()

并像在 Python 中一样使用它:

val a = listOf(1, 2, 3, 4)
val b = a * 3


以上是如何在Kotlin中乘以列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>