¿Hay alguna function de réplica en Kotlin?

replicate(n:Int,x:T):List<T> es una list de longitud n con x el valor de cada elemento.

Escribí una versión mutable para replicar de la siguiente manera:

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

¿Hay alguna function de réplica inamovible en Bulid in Kotlin?

¿Cómo escribirnos una function de replica inmutable en Kotlin?

Puede usar las List instantiation functions . Aceptan una function del índice para el elemento deseado, pero también puede usarlos para crear una list de valores constantes.

 fun <T> replicate(n:Int,x:T):List<T> { return List(n) { x } } 

Si necesita una list de solo lectura, puede implementar la replicate la siguiente manera:

 fun <T> replicate(n: Int, x: T): List<T> = object : AbstractList<T>() { override val size: Int = n override fun get(index: Int): T = if (index in 0..lastIndex) x else throw IndexOutOfBoundsException("$n") } 

Tiene la ventaja de que requiere una cantidad constante de memory sin importar cuán grande sea n .

  • Anotaciones de Enum en Kotlin
  • Literales numéricos de Kotlin
  • NoSuchMethodError usando @Parcelize Annotation en Kotlin
  • Referencia no resuelta: findViewById en Kotlin
  • Estudio de Android 3: Tiempo de ejecución de Kotlin desactualizado
  • Clase de datos de Kotlin con properties derivadas
  • ¿Hay alguna manera de hacer que scroll de ViewPager DecorView tenga el contenido del fragment?
  • AOP con Kotlin
  • ¿Por qué Anko no puede ignorar el valor pasado de _id cuando _id es INTEGER + PRIMARY_KEY + AUTOINCREMENT?
  • Error de compilation de Kotlin: supertipo de AspectJ no resuelto
  • Kotlin: ¿Por qué el !! operador genera verificaciones nulas al comstackr para el jvm?