Sobes.tech
Junior

¿Qué funciones auxiliares conoces o has utilizado en tu experiencia?

sobes.tech AI

Respuesta de la IA

  • Expresiones lambda: Acortan el código para funciones pequeñas, como manejadores de eventos o callbacks.

  • Funciones de extensión (Kotlin): Añaden nuevas funciones a clases existentes sin heredar, mejorando la legibilidad y la conveniencia.

    fun String.isPalindrome(): Boolean {
        // Verifica si la cadena es un palíndromo
        return this == this.reversed()
    }
    
  • Funciones en línea (Kotlin): Inserta el cuerpo de la función en el lugar de la llamada, reduciendo la sobrecarga de crear objetos de función, especialmente útil con lambdas.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Mide el tiempo de ejecución del bloque de código
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Tiempo de ejecución: ${endTime - startTime} ms")
    }
    
  • Clases de datos (Kotlin): Generan automáticamente equals(), hashCode(), toString(), copy(), útil para almacenar datos.

    data class User(val name: String, val age: Int)
    
  • Clases selladas (Kotlin): Representan una jerarquía limitada de clases, útiles para modelar estados o eventos, especialmente en combinación con when.

  • Genéricos: Permiten crear componentes reutilizables que trabajan con diferentes tipos de datos.

    public class Box<T> {
        // Clase genérica para almacenar cualquier tipo de dato
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operaciones con colecciones (map, filter, reduce, etc.): Métodos funcionales para procesar colecciones de datos.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtra los pares
        .map { it * it }      // Eleva al cuadrado
    
  • Getters de recursos (Kotlin): Para obtener cadenas, colores, tamaños, etc., de los recursos.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Tipos nulos y llamadas seguras (Kotlin): Reducen la cantidad de NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Llamada segura y operador Elvis