Kotlin desde cero variables, tipos básicos y matrices

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.. 

Prerrequisitos

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. 

1. Variables

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"

2. Inferencia de tipo o deducción

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.  

3. Tipos básicos

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.. 

Números

Los tipos de enteros disponibles en Kotlin son:

  • Largo-64 bits
  • En t-32 bits
  • Corto-16 bits
  • Byte-8 bits

Los tipos de punto flotante son: 

  • Doble-64 bits
  • Flotador-32 bits
val 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 ()

El tipo booleano

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

Instrumentos de cuerda

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

Arrays

En Kotlin, hay dos formas principales de crear una matriz: usando la función auxiliar gama de() o el constructor Formación()

los gama de() Función

Por 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í. 

los Formación() Constructor

Ahora 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.

4. Comentarios

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

Conclusión

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+.