¿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 .

  • Variable Kotlin String en el parámetro de function autocast a java.lang.String, ¿por qué?
  • Kotlin solo leyó propiedad con y sin getter
  • Botón libgdx hacia arriba sin efecto
  • Error al usar IntDef definido en Kotlin cuando se usa en Java
  • Disruptor LMAX con Kotlin: ¿No se puede usar lambda?
  • extracción de resources de string para kotlin en android studio?
  • Cómo filtrar una list en el lugar con Kotlin?
  • Pruebas de Espresso con Kotlin
  • Kotlin: aplicar vs con
  • Encuentra la última ocurrencia de un String en una matriz usando Kotlin
  • ¿Cómo se ocultan los parameters en los pasos de creación personalizados en Kotlin para TeamCity?