Capítulo 10. Funciones de extensión
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Kotlin tiene un tipo especial de procedimiento llamado función de extensión, que se llama como un método pero que en realidad es (normalmente) una función de nivel superior. Es fácil pasar de una función normal a una función de extensión y viceversa. ¿Cuándo debemos preferir una a otra?
Funciones y métodos
La programación orientada a objetos es el arte de resolver problemas enviando mensajes a los objetos. ¿Quieres saber la longitud de myString? Pregúntaselo enviándole un mensaje myString.length(). ¿Quieres imprimir esa cadena en la consola? Pon la cadena en un mensaje y pídele a otro objeto que represente la consola que la imprima por ti:
System.out.println(myString)En los lenguajes OO clásicos, definimos cómo reacciona un objeto a un mensaje definiendo métodos en las clases. Los métodos están vinculados a su clase y tienen acceso a los miembros (campos y otros métodos) asociados a una instancia concreta. Cuando invocamos un método, el tiempo de ejecución se encarga de que se llame a la versión correcta (según el tipo de ejecución del objeto) y de que tenga acceso al estado de la instancia.
Por el contrario, en, en la programación funcional, resolvemos los problemas llamando a funciones con valores. Encontramos la longitud de myString pasándosela a una función: length(myString). Imprimimos en la consola con println(myString) ...