Cuándo usar funciones inline en Kotlin y cómo afectan al rendimiento
¡Hola a todos! Recientemente empecé a estudiar Kotlin y me topé con algo llamado funciones inline. En la documentación dice que ayudan a evitar la sobrecarga de crear objetos lambda, pero no entiendo del todo cuándo realmente debería usarlas.
Por ejemplo, tengo una función de orden superior simple:
```kotlin
fun measureTime(action: () -> Unit) {
val start = System.currentTimeMillis()
action()
val end = System.currentTimeMillis()
println("Time: ${end - start} ms")
}
```
La llamo así:
```kotlin
measureTime {
Thread.sleep(100)
println("Hello")
}
```
Todo funciona, pero leí que sin `inline` se crea un nuevo objeto para la lambda cada vez. ¿Es realmente un problema? ¿Cuándo se vuelve crítico?
También vi ejemplos con `reified` (tipos reificados) — al parecer solo se pueden usar con inline. ¿Es cierto? ¿Y cómo se relaciona con el rendimiento?
¿Pueden explicarlo de forma sencilla: en qué casos debería escribir `inline` y cuándo no?
No answers yet.
Inicia sesión para dejar una respuesta