Las variables en Swift son un concepto de lenguaje fundamental y poderoso. Aunque parecen simples, incluyen una gran cantidad de funcionalidades, y también hay algunos errores comunes que encontrará al realizar la programación de Swift..
En este breve video tutorial de mi curso sobre la creación de aplicaciones iOS con Swift 3, explicaré las variables, constantes y opcionales, con un énfasis especial en el sistema de tipo Swift..
Swift tiene algunas características que son muy potentes y útiles cuando se trata de variables. Empecemos con un nuevo parque infantil..
Como puede ver, ya hay una asignación de variable en la pantalla, que fue creada por la plantilla. Tiene la var
palabra clave delante de ella, seguida de un nombre de variable y la asignación -aquí, "Hola, parque infantil"
. Hasta ahora tan bueno.
Lo que no ve en esta línea de código es una asignación de tipo. No es necesario. Creemos una nueva variable llamada int y le demos el valor 8
:
var int = 8
Bien, ahora vamos a cambiar el str
variable para ser el valor 4
. Inmediatamente, el compilador se queja de que está intentando establecer un valor de tipo En t
ser de tipo Cuerda
.
¿Cómo sabe esto??
Se infiere. A pesar de su apariencia, Swift es un lenguaje de tipo estático, lo que significa que cada variable tiene un tipo. Pero a diferencia de la mayoría de los otros idiomas, puede inferir el tipo cuando se le asigna un valor durante la definición. Para nuestro caso, esto significa que desde la str
La variable recibió una cadena, recibió automáticamente el tipo Cuerda
.
Lo mismo para el En t
variable. Este podemos configurar para 4
porque es un entero.
A veces, desea especificar explícitamente el tipo de variable. Por supuesto, esto también es posible. Vamos a crear una variable doble
, y configurarlo para 4
.
Ya sabemos que se inicializará a un entero, a pesar del nombre. Así que cuando intentamos configurarlo para 4.5
, esto va a fallar No obstante, para asegurarnos de que sea un doble, debemos establecerlo con dos puntos después del nombre de la variable, seguido del tipo, en mayúsculas, Doble
.
Bien, ahora a las constantes. Esos son los que se deben usar si no desea cambiar el valor que estableció inicialmente.
El compilador Swift es muy inteligente al respecto y te advierte si usas una variable donde quieres una constante y viceversa. Para definir una constante, necesitará la palabra clave dejar
en lugar de var
. En el código de antes, si cambias el doble
variable a una constante, el compilador le avisará sobre el cambio que está tratando de hacer en la siguiente línea configurándolo para 4.5
.
Algo que fue muy divertido cuando apareció Swift por primera vez es el hecho de que es totalmente compatible con Unicode. Esto también significa que los nombres de las variables pueden ser de cualquier carácter en Unicode, si desea establecer π
a 3.14159
. Incluso admite el uso de emojis para nombrar tus variables y funciones.
La característica principal final con respecto a las variables en Swift es opcionales.
Cuando defina una variable, debe inicializarla antes de usarla. Si no lo haces, tu programa no compilará. A veces, sin embargo, su variable no siempre tendrá un valor. Por ejemplo, cuando tiene una función de devolución de llamada que devuelve el resultado de una operación o un error.
Siempre ha existido el concepto de punteros nulos en la programación. En Swift, esos se llaman nil. Esas son variables inicializadas con un valor especial de nada. Si desea permitir un valor nulo para una variable en Swift, tiene que decirlo explícitamente y la variable se convierte en opcional. Por ejemplo:
var myVariable: String? imprimir (myVariable)
Un opcional se define agregando un signo de interrogación al tipo. Esto hace que la declaración de impresión funcione de inmediato, y produce resultados. nulo
.
Cambiemos mi variable para que sea doble y multipliquémosla por 2. Aunque no se permite nada, no se puede hacer mucho con ella. Esto significa que necesitamos una salvaguardia. Dado que los chequeos nulos son un problema muy común en la programación, los diseñadores de lenguaje de Swift han decidido brindarnos una manera especial de tratarlos..
Es posible que hayas aprendido esa asignación de variables en una Si
La declaración es una mala práctica. Para Swift, esto es diferente. Si estas haciendo si deja myVariable = myVariable
, automáticamente desempaquetará el opcional para usted y lo pondrá a disposición en el bloque if para usted si no es nulo.
Así que vamos a inicializar la variable con un valor. En el bloque, lo multiplicará por 2 y lo imprimirá. Pero si intentamos hacer lo mismo fuera del bloque, por supuesto fallará.
Si sabe absolutamente que una variable tiene un valor y no quiere envolverla en un condicional, también puede desenvolverla a la fuerza usando un signo de exclamación. Esto lo desenvolverá si hay un valor, pero si no lo hay, fallará mucho con una excepción de tiempo de ejecución. Así que si estás trabajando mucho con opciones, definitivamente recuerda este especial Si
declaración.
Algo muy importante a la hora de trabajar con estática. dejar
tipos es conversión de tipos.
Digamos que tienes un doble y quieres un entero. En Swift, cada tipo viene con un inicializador, incluso booleanos o enteros. Los tipos predeterminados también tienen inicializadores para tipos compatibles, por lo que podemos usar el En t
Inicializador para convertir nuestro doble..
Para profundizar más en la conversión de tipos, necesito introducir un nuevo conjunto de tipos, colecciones. Estoy bastante seguro de que sabes qué es una matriz y, por supuesto, también están disponibles en Swift. Vamos a crear una matriz de enteros:
vamos a intArray = [1, 2, 3, 4]
Podría estar acostumbrado a poner cualquier cosa que se le ocurra en una matriz y también mezclar tipos. Pero en Swift, las matrices también se tipifican de forma estática contra sus valores. Esto significa que si desea agregar una cadena a su matriz de enteros, Swift no sabe qué hacer. let intArray = [1, 2, 3, 4, "String"]
le dará un mensaje de error.
Así que vamos a eliminar la cadena y agregarla en una línea separada a la matriz. Ahora muestra el mensaje de error que quería mostrarte..
Este error proviene del tipo de la matriz, ya que se infiere que es una matriz de enteros. Podemos establecerlo explícitamente en este tipo mediante el uso de corchetes alrededor del tipo del contenido. Este es el método más conciso para definir la matriz..
También puede usar la matriz de tipos y usar paréntesis angulares para definir el tipo. Esto puede parecerte más familiar si vienes de otro idioma. Por supuesto, hay algunos casos en los que realmente desea permitir tipos mixtos en una matriz. En un minuto, le mostraré otro tipo de datos donde almacenará la respuesta JSON de un servidor web, que puede contener números, valores booleanos o cadenas.
Hay una palabra clave especial en Swift que permite que esos tipos estén presentes, y se llama Alguna
. Esto significa que esto puede ser de cualquier tipo. Por supuesto, el problema es que todavía estamos en un lenguaje tipado estáticamente. Ahora los valores son de tipo Alguna
. Si queremos sumar los dos primeros enteros juntos, simplemente no lo hacemos porque la Alguna
tipo no es compatible con el operador de adición.
Esto significa que tenemos que usar conversión de tipos para convertirlos al tipo correcto. Podemos usar el como
palabra clave para hacerlo. Y, por supuesto, ya que no es seguro, necesitamos usar el golpe también para forzarlo, ya que no hay conversión conocida entre Alguna
y En t
. Sin embargo, si hacemos esto, tenemos que ser muy cuidadosos con los tipos reales. Si emitimos el elemento equivocado para que sea un entero, fallará en tiempo de ejecución con una excepción.
Ahora, falta una cosa importante. Eso es diccionarios. Si vienes de otro idioma, puedes conocerlos como mapas o hashes.
Tienen claves que tienen valores. Si desea definirlos explícitamente, lo hará de manera similar a la matriz utilizando corchetes, pero separará la clave y el valor con dos puntos..
Definiendo un Cuerda
llave y un Alguna
El valor sería un caso de uso muy común al analizar datos JSON de la web.
En el curso completo, Crear aplicaciones iOS con Swift 3, obtendrá una guía completa para usar Swift 3 para crear aplicaciones iOS.
Ya sea que sea nuevo en el desarrollo de aplicaciones de iOS o esté buscando hacer el cambio desde Objective-C, este curso le ayudará a comenzar con Swift para el desarrollo de aplicaciones. Aprenderás sobre todas las características básicas del lenguaje, desde las variables hasta las clases. También recibirá una introducción al uso de Xcode para el desarrollo de aplicaciones a medida que avanza e implementa el proyecto del curso: un visor de secuencias de Fibonacci interactivo.