01---Kotlin_1.pdf
Document Details
Full Transcript
Universidad Nacional de La Matanza Kotlin Introducción y primeros pasos Agenda Sobre el lenguaje Funciones Variables mutables e inmutables Strings Condicionales Estructuras de repetición Clases Objetos ¿Cómo seguir? ¿Por qué un nuevo lenguaje? En Android es difícil...
Universidad Nacional de La Matanza Kotlin Introducción y primeros pasos Agenda Sobre el lenguaje Funciones Variables mutables e inmutables Strings Condicionales Estructuras de repetición Clases Objetos ¿Cómo seguir? ¿Por qué un nuevo lenguaje? En Android es difícil soportar nuevas versiones de Java ○ Java 7 Desarrollado por JetBrains… apoyado por Google. ○ ¿Conflicto inminente con Oracle? Buena recepción en la comunidad de desarrolladores El lenguaje Moderno y expresivo Más seguro Interoperable Arranquemos con lo básico Archivos.kt Definición de packages, como en Java pero más flexible ○ No es necesario que la carpeta donde está el archivo coincida con el package declarado Puede declararse más de una clase por archivo Pueden declararse funciones sin que pertenezcan a ninguna clase ○ Las funciones son first-class citizen. No es necesario que los statements terminen con punto y coma Operadores 7 Operadores Operadores matemáticos + - * / % Operadores de crecimiento y decrecimiento ++ -- Operadores de comparación < >= Operador de asignación = Operadores de igualdad == != 8 Operaciones con enteros 1 + 1 => 2 53 - 3 => 50 50 / 10 => 5 9 % 3 => 0 9 Operaciones con decimales 1.0 / 2.0 => 0.5 2.0 * 3.5 => 7.0 10 Operadores matemáticos 1+1 1.0/2.0 ⇒ kotlin.Int = 2 ⇒ kotlin.Double = 0.5 53-3 2.0*3.5 ⇒ indicates output ⇒ kotlin.Int = 50 ⇒ kotlin.Double = 7.0 from your code. Result includes the 50/10 type (kotlin.Int). ⇒ kotlin.Int = 5 11 Numeric operator methods Kotlin mantiene a los números como primitivos. Pero deja llamar métodos a estos números como si fuesen objetos. 2.times(3) ⇒ kotlin.Int = 6 3.5.plus(4) ⇒ kotlin.Double = 7.5 2.4.div(2) ⇒ kotlin.Double = 1.2 12 Data types 13 Tipos de Enteros Type Bits Notes Long 64 From -263 to 263-1 Int 32 From -231 to 231-1 Short 16 From -32768 to 32767 Byte 8 From -128 to 127 14 Decimales y otros tipos numéricos Type Bits Notes Double 64 16 - 17 dígitos significantes Float 32 6 - 7 dígitos significantes Char 16 16-bit Unicode character Boolean 8 True or false. Las operaciones incluyen: || - lazy disjunction, && - lazy conjunction, ! - negation 15 Funciones Sobre functions Son un bloque de código que ejecuta una tarea específica Rompe el programa en pedazos modulares más pequeños Se declaran usando la palabra clave fun Pueden recibir argumentos que sean nombrados o con valores por defecto 17 Partes de una función Previamente, creaste una función simple que imprimía "Hello World". fun printHello() { println("Hello World") } printHello() 18 Lo básico Si sólo retornan un valor Si no retornan nada Variables mutables e inmutables Inmutables Mutables Strings String templates Condicionales if If como expresión when Estructuras de repetición for for for while Clases Clase básica y creación de instancia Constructor principal Recibiendo atributos en el constructor Herencia Herencia implícita: Todos los objetos heredan de Any (en Java esto es así con Object) ○ equals(), hashCode() y toString() Para que se pueda heredar de una clase, esta debe ser marcada con la palabra reservada open (esto es exactamente al revés que en Java, donde hay que marcar las clases para que no se pueda heredar de ellas con final) Herencia Herencia Sobreescribiendo funciones Companion objects En Kotlin todo es un objeto: no existe el concepto de funciones/métodos estáticos, o de constantes estáticas (que pertenezcan a clases) Si se quiere lograr lo mismo, lo que se puede hacer es definir un companion object para cada clase Companion objects Objetos Creando un objeto Creando un objeto de una clase anónima Lists Listas - Usos Las listas por default tiene 10 posiciones , cuando se completa, por dentro hace un resize creando un objeto nuevo Orden natural que depende de la inserción de elementos a la lista Poseen un índice, donde se puede acceder directamente a un determinado elemento Proveen una interfaz inmutable (List) 50 Listas - Creación Las listas son un conjunto de objetos ordenados. En Kotlin, las listas pueden ser mutables o inmutables mutables → mutableListOf() Inmutables o solo lectura → ListOf() 51 ¿Preguntas? ¿Qué más puede ser útil aprender? Colecciones (List, Array, etc) Interfaces Enums Data classes Sealed classes map(), filter().let(),.apply(),.with(),.also(), etc, etc, etc... ¿Dónde sigo aprendiendo? https://kotlinlang.org/docs/reference/basic-syntax.html https://developer.android.com/kotlin https://play.kotlinlang.org/koans/overview Fin