Kotlin: pasar el método array to varargs con el operador spread

Pasé demasiado time tratando de resolver cómo pasar varias instancias de Migration a un generador de bases de datos de Room para un module Dagger2.

El constructor de la database Room requiere context y el nombre de la database.

 Room.databaseBuilder(context, Database::class.java, dbName) .build() 

Las migraciones se pueden agregar al generador con el método addMigrations que toma vararg migrations: Migration!

Una opción es crear el constructor.

 val builder = Room.databaseBuilder(context, Database::class.java, dbName) 

Y luego para cada uno a través de las migraciones

 migrations.forEach { builder.addMigrations(it) } 

sin embargo, esto es desorderado e innecesario, y el operador de propagación debería utilizarse en su lugar.

Me las arreglé de perder esto ya que la única documentation que encontré para el operador de propagación fue una sola oración en los documentos.

Cuando llamamos a una function vararg, podemos pasar arguments uno por uno, por ejemplo, como Lista (1, 2, 3) o, si ya tenemos una matriz y queremos pasar su contenido a la function, usamos la extensión operador (prefija la matriz con *)