Kotlin es un lenguaje de programación moderno que compila a bytecode Java. Es gratuito y de código abierto, y promete hacer que la codificación para Android sea aún más divertida.
Kotlin es 100% interoperable con Java. En otras palabras, se puede utilizar junto con Java en el mismo proyecto. Así que puedes refactorizar partes de tu código Java a Kotlin y no se romperá. Además de eso, es conciso, expresivo y tiene excelentes herramientas. Kotlin se puede usar en el back-end (lado del servidor), pero en este momento está recibiendo mucha atención como lenguaje para el desarrollo de aplicaciones para Android. Kotlin ahora es compatible con Google como lenguaje de primera clase para el desarrollo de Android, por lo que la popularidad de Kotlin está lista para explotar!
En este primer tutorial de la serie Kotlin From Scratch, aprenderá los conceptos básicos del idioma: comentarios, variables, tipos simples, matrices e inferencia de tipos..
Para seguirme, necesitarás el complemento Kotlin en Android Studio. Alternativamente, puede usar el área de juegos en línea o IntelliJ IDEA Community Edition.
En Kotlin, utilizar val
declarar una constante o var
Palabras clave para declarar una variable. Puede especificar un tipo como Cuerda
o En t
después del nombre de la variable. En el siguiente ejemplo, declaramos una constante nombre de pila
de tipo Cuerda
con el val
palabra clave.
val firstName: String = "Chike"
Pero pronto se dará cuenta de que en Kotlin, a menudo es posible omitir el tipo de la declaración y el compilador no se quejará..
val lastName = "Mgbemena" // todavía se compilará
En el código anterior, observará que no indicamos explícitamente el tipo Cuerda
. El código anterior aún funcionará porque el compilador ha inferido implícitamente el tipo usando inferencia de tipo. Volveremos a esto!
La diferencia entre el val
y var
las palabras clave son que el primero es inmutable o de solo lectura (su valor no se puede cambiar), mientras que el segundo es mutable (su valor se puede cambiar).
val dateOfBirth = "29 de marzo de 1709" dateOfBirth = "25 de diciembre de 1600" // no se puede cambiar var car = "Toyota Matrix" car = "Mercedes-Maybach" // se puede cambiar
Tenga en cuenta que para una variable declarada con el var
La palabra clave que tiene su tipo inferido por el compilador, asignando otro valor de un tipo diferente no funcionará. En otras palabras, el valor de la variable puede cambiar, pero su tipo no puede! Por ejemplo:
var age = 12 age = "12 years old" // Error: no coincide el tipo
Se recomienda encarecidamente que comience por hacer que sus variables sean inmutables declarándolas con el val
palabra clave, a fin de no mantener demasiados estados. Esto hace que su código sea más seguro para los subprocesos múltiples, ya que garantiza que sus variables no puedan ser modificadas por otros subprocesos inesperadamente.
Otra cosa que debes saber sobre el val
La palabra clave es que puede declararlo solo con un tipo y asignarle un valor más adelante. Pero solo puedes asignar un valor una vez.
val carName: String carName = "Toyota Matrix" // se compilará
En Java, es posible declarar múltiples variables del mismo tipo en una sola línea, pero esto no funciona en Kotlin. En Kotlin, todas las declaraciones de variables deben estar en sus propias líneas..
val carName = "BMW", streetName = "Oke street" // esto no se compilará // esto compilará var carName = "BMW" var streetName = "Oke street"
Kotlin es un lenguaje fuertemente tipado que admite inferencia de tipo o deducción. Este es el mecanismo empleado por el compilador para encontrar tipos de contexto. Java no tiene un mecanismo de inferencia de tipo, lo que significa que debe declarar explícitamente el tipo de cada función o variable. La inferencia de tipos ayuda a reducir el código repetitivo que tienes que escribir.
val país = "Nigeria" // El tipo de código del compilador es inferido = 234
El código anterior se compilará aunque no hayamos establecido explícitamente el tipo para la variable país. El compilador es lo suficientemente inteligente como para saber que el país es de tipo Cuerda
, porque el valor, "Nigeria", es una cadena.
En Java, tenemos dos tipos de tipos primitivos (por ejemplo, int, long, boolean, byte, char, etc.) y tipos de referencia (por ejemplo, array, Cuerda
). Java utiliza envoltorios (como java.lang.Integer
) para hacer que los tipos primitivos se comporten como objetos. Pero en Kotlin, no hay tal distinción. En su lugar, todos los tipos son objetos..
Los tipos de enteros disponibles en Kotlin son:
Largo
-64 bitsEn t
-32 bitsCorto
-16 bitsByte
-8 bitsLos tipos de punto flotante son:
Doble
-64 bitsFlotador
-32 bitsval myInt = 55 val myLong = 40L val myFloat = 34.43F val myDouble = 45.78 val myHexadecimal = 0x0F val myBinary = 0b010101
Se puede observar que creamos un Largo
literal añadiendo el sufijo L
, y para Flotador
añadimos el sufijo F
o F
. Los números también se pueden escribir en notación hexadecimal usando la 0x
o 0X
prefijo y en binario usando el 0b
o 0B
prefijo. Tenga en cuenta que, en todos estos casos, Kotlin puede usar la inferencia de tipos para conocer el tipo que queremos..
val myLong = 19L val myLongAgain: Long = 40
Para convertir un número de un tipo a otro, debe invocar explícitamente la función de conversión correspondiente. En otras palabras, no hay conversión implícita entre tipos de números.
val myNumber = 400 val myNumberAgain: Long = myNumber // arroja Error: No coincide el tipo
Cada tipo de número tiene funciones auxiliares que convierten de un tipo de número a otro: toByte ()
, toInt ()
, aLong ()
, flotar()
, para duplicar()
, toChar ()
, a corto()
.
val myInt = 987 val myLong = myInt.toLong ()
En el código anterior, estamos convirtiendo de un entero a un largo. También podemos hacer lo contrario utilizando el método. toInt ()
en la variable larga. Tenga en cuenta que esto truncará el valor para que se ajuste al tamaño más pequeño de un En t
Escriba si es necesario, así que tenga cuidado al convertir de tipos más grandes a otros más pequeños!
También puedes convertir un Cuerda
en un tipo de número.
val stringNumber = "101" val intValue = stringNumber.toInt ()
En el código anterior, convertimos la variable. stringNumber
en una En t
escribe llamando al método toInt ()
en la variable Podemos escribir esto de manera más sucinta al llamar al método directamente en la cadena:
val intValue = "101" .toInt ()
los Booleano
Tipo en Kotlin es el mismo que en Java. Su valor puede ser verdadero o falso. Las operaciones de disyunción (||
), conjunción (&&
), y la negación (!
) se puede realizar en tipos booleanos, al igual que Java.
val myTrueBoolean = true val myFalseBoolean = false val x = 1 val y = 3 val w = 4 val z = 6 val n = x < z && z > w // n es cierto
Las cadenas se pueden crear con comillas dobles o triples. Además de eso, los caracteres de escape se pueden utilizar con comillas dobles.
val myString = "Esta es una cadena" val escapeString = "Esta es una cadena con una nueva línea \ n"
Para crear una cadena que abarca varias líneas en el archivo de origen, usamos comillas triples:
val multipleStringLines = "" "Esta es la primera línea Esta es la segunda línea Esta es la tercera línea" ""
Kotlin también admite interpolación de cadenas o plantillas de cadenas. Esta es una forma más fácil de crear cadenas dinámicas que de concatenación, que es lo que usamos en Java. Usando plantillas de cadenas, podemos insertar variables y expresiones en una cadena.
val accountBalance = 200 val bankMessage = "El saldo de su cuenta es $ accountBalance" // El saldo de su cuenta es 200
En el código anterior, creamos una cadena literal, y dentro de ella, nos referimos a una variable mediante el uso de un PS
Carácter delante del nombre de la variable. Tenga en cuenta que si la variable no es correcta o no existe, el código no se compilará.
¿Qué pasa si necesitas usar PS
en su cadena? Acabas de escapar con PS
! Además, puedes llamar métodos desde un interpolado. Cuerda
directamente; tienes que añadir llaves PS
para envolverlo.
val name = "Chike" val message = "La primera letra de mi nombre es $ name.first ()" // La primera letra de mi nombre es C
Otra cosa interesante que puedes hacer es realizar un poco de lógica dentro de las llaves al crear un Cuerda
literal.
val age = 40 val anotherMessage = "You are $ if (age> 60)" old "else" young "" // You are young
En Kotlin, hay dos formas principales de crear una matriz: usando la función auxiliar gama de()
o el constructor Formación()
.
gama de()
FunciónPor ejemplo, vamos a crear una matriz con algunos elementos usando gama de()
.
val myArray = arrayOf (4, 5, 7, 3)
Ahora, para acceder a cualquiera de los elementos, podemos utilizar su índice: myArray [2]
. Tenga en cuenta que podemos pasar valores de diferentes tipos en el gama de()
como argumentos y seguirá funcionando; será una matriz de tipo mixto.
val myArray = arrayOf (4, 5, 7, 3, "Chike", falso)
Para hacer cumplir que todos los valores de la matriz tienen el mismo tipo, por ejemplo,. En t
, Declaramos un tipo llamando gama de
o intArrayOf ()
.
val myArray3 = arrayOf(4, 5, 7, 3, "Chike", falso) // no compilará val myArray4 = intArrayOf (4, 5, 7, 3, "Chike", falso) // no compilará
También tenemos otras funciones de utilidad para crear matrices de otros tipos, como charArrayOf ()
, booleanArrayOf ()
, longArrayOf ()
, shortArrayOf ()
, byteArrayOf ()
, y así. Detrás de escena, el uso de estas funciones creará una matriz de sus respectivos tipos primitivos de Java. En otras palabras, intArrayOf ()
compilará al tipo primitivo de Java regular En t[]
, byteArrayOf ()
estarán byte[]
, longArrayOf ()
estarán largo[]
, y así.
Formación()
ConstructorAhora veamos cómo crear una matriz con Formación()
. El constructor de esta clase requiere un tamaño y una función lambda. Aprenderemos más acerca de las funciones lambda más adelante en esta serie, pero por ahora, solo entendamos que es una forma simple y en línea de declarar una función anónima. En este caso, el trabajo de la función lambda es inicializar la matriz con elementos.
val numbersArray = Array (5, i -> i * 2)
En el código anterior, pasamos 5 como el tamaño de la matriz en el primer argumento. El segundo argumento toma una función lambda, que toma el índice del elemento de la matriz y luego devuelve el valor que se insertará en ese índice en la matriz. Así que en el ejemplo anterior, creamos una matriz con los elementos 0, 2, 4, 6 y 8.
Esta es una fácil. En Kotlin, los comentarios son los mismos que en Java. Podemos usar comentarios de bloque o línea:
/ * hola, este es un comentario de bloque con varias líneas. Esta es otra línea. Este es otro de nuevo * / // este es un comentario de una sola línea
En este tutorial, aprendió los conceptos básicos del lenguaje de programación Kotlin: variables, tipos básicos, inferencia de tipos, matrices y comentarios. En el siguiente tutorial de la serie Kotlin From Scratch, aprenderá sobre los bucles, rangos, condiciones, colecciones y paquetes en Kotlin. Te veo pronto!
Para obtener más información sobre el idioma Kotlin, recomiendo visitar la documentación de Kotlin. O echa un vistazo a algunos de nuestros otros tutoriales de Kotlin aquí en Envato Tuts+.