Kotlin有没有复制功能?

xia*_*ang 2 kotlin

replicate(n:Int,x:T):List<T> 是一个长度为n的列表,其中x是每个元素的值.

我写了一个可变版本复制如下:

fun <T> mutableReplicate(n:Int, x:T) : MutableList<T>{
    val xs = mutableListOf<T>()
    for (i in 1..n){
        xs.add(x)
    }
    return xs
}
Run Code Online (Sandbox Code Playgroud)

在Kotlin中是否有任何bulid-in immutable replicate功能?

如何在Kotlin中为自己写一个不可变的复制函数?

Luk*_*itz 6

你可以用List instantiation functions.它们接受从索引到所需元素的函数,但您也可以使用它们来创建常量值列表.

fun <T> replicate(n:Int,x:T):List<T> {
   return List(n) { x }
}
Run Code Online (Sandbox Code Playgroud)