¿Existe un método Kotlin incorporado para aplicar la function vacía al valor?

Escribí este método para aplicar una function vacía a un valor y devolver el valor.

public inline fun <T> T.apply(f: (T) -> Unit): T { f(this) return this } 

Esto es útil para networkingucir algo como esto:

 return values.map { var other = it.toOther() doStuff(other) return other } 

Para algo como esto:

 return values.map { it.toOther().apply({ doStuff(it) }) } 

¿Hay alguna característica o método de lenguaje como este que ya esté incorporado a Kotlin?

Tuve el mismo problema. Mi solución es básicamente la misma que la tuya con un pequeño refinamiento:

 inline fun <T> T.apply(f: T.() -> Any): T { this.f() return this } 

Tenga en count que f es una function de extensión. De esta forma puede invocar methods en su object utilizando la reference implícita. Aquí hay un ejemplo tomado de un proyecto mío libGDX:

 val sprite : Sprite = atlas.createSprite("foo") apply { setSize(SIZE, SIZE) setOrigin(SIZE / 2, SIZE / 2) } 

Por supuesto, también doStuff(this) llamar a doStuff(this) .

Aplicar está en la biblioteca estándar de Kotlin: Consulte los documentos aquí: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/apply.html

Su firma de método:

 inline fun <T> T.apply(f: T.() -> Unit): T (source) 

Llama a la function especificada f con este valor como su receptor y devuelve este valor.