En el primer artículo de Swift From Scratch, aprendiste sobre los campos de juego de Xcode y escribiste tus primeras líneas de Swift. En este artículo, comenzaremos a aprender los fundamentos del lenguaje de programación Swift explorando variables y escribiendo. También veremos de cerca las constantes y por qué se recomienda que las utilice lo más posible..
En las próximas entregas de esta serie, utilizaremos los campos de juego de Xcode para aprender los fundamentos del lenguaje de programación Swift. Como vimos en el artículo anterior, los parques infantiles son ideales para enseñar y aprender Swift.
Empecemos creando un nuevo campo de juego para este tutorial. ¡Te animo a seguirlo! Usar un lenguaje es una excelente manera de aprender su sintaxis y entender sus conceptos..
Inicie Xcode 8 y cree un nuevo parque infantil seleccionando Nuevo> Zona de juegos ... de Xcode's Expediente menú. Introduzca un nombre para el patio de recreo, establecer Plataforma a iOS, y haga clic Siguiente. Dile a Xcode dónde te gustaría guardar el patio de recreo y pulsa Crear.
Borre el contenido del área de juegos para que podamos comenzar con una pizarra limpia. Ya hemos hecho uso de variables en el tutorial anterior, pero ahora echemos un vistazo más de cerca a los detalles esenciales para entender mejor lo que Swift está haciendo entre bastidores..
En Swift, utilizamos el var
Palabra clave para declarar una variable. Si bien esto es similar a cómo se declaran las variables en otros lenguajes de programación, le recomiendo que no piense en otros lenguajes de programación al usar el var
palabra clave en Swift. Hay algunas diferencias importantes.
los var
La palabra clave es la única forma de declarar una variable en Swift. El uso más común y conciso de la var
La palabra clave es declarar una variable y asignarle un valor..
calle var = "5ta avenida"
Recuerda que no terminamos esta línea de código con un punto y coma. Si bien un punto y coma es opcional en Swift, la mejor práctica es no usar un punto y coma si no es necesario..
También puede haber notado que no especificamos un tipo al declarar la variable calle
. Esto nos lleva a una de las características clave de Swift, inferencia de tipo.
La declaración anterior declara una variable calle
y asigna el valor 5ta Avenida
lo. Si es nuevo en Swift o está acostumbrado a JavaScript o PHP, entonces puede estar pensando que Swift es un lenguaje sin tipografía o tipificado, pero nada podría estar más lejos de la verdad. Permítanme reiterar que Swift es un lenguaje fuertemente tipado.. Tipo de seguridad Es uno de los pilares del lenguaje..
Estamos empezando, y Swift ya nos muestra un poco de su magia. Aunque la declaración anterior no especifica explícitamente un tipo, la variable calle
es de tipo Cuerda
. Esta es la inferencia de tipo de Swift en acción. El valor que asignamos a calle
es una cuerda Swift es lo suficientemente inteligente como para ver eso y establece implícitamente el tipo de calle
a Cuerda
.
La siguiente declaración nos da el mismo resultado. La diferencia es que establecemos explícitamente el tipo de la variable. Esta declaración dice literalmente que calle
es de tipo Cuerda
.
var street: String = "5th Avenue"
Swift requiere que establezca explícita o implícitamente el tipo de variables y constantes. Si no lo haces, Swift se queja lanzando un error. Agregue la siguiente línea a su área de juegos para ver a qué me refiero.
número var
Esta declaración sería perfectamente válida en JavaScript o PHP. En Swift, sin embargo, no es válido. La razón es simple. Aunque declaramos una variable usando la var
palabra clave, no especificamos el tipo de variable. Swift no puede inferir el tipo ya que no asignamos un valor a la variable. Si hace clic en el error, Xcode le dice qué está mal con esta declaración..
Podemos solucionar este problema fácilmente haciendo una de dos cosas. Podemos asignar un valor a la variable como hicimos anteriormente, o podemos especificar explícitamente un tipo para la variable número
. Cuando establecemos explícitamente el tipo de número
, el error desaparece La siguiente línea de código lee que número
es de tipo Cuerda
.
número var: String
Como puede ver a continuación, asignando nuevos valores a calle
y número
Es simple y viene sin sorpresas..
var street: String = "5th Avenue" var number: String street = "Main Street" number = "10"
¿No sería más fácil asignar el número? 10
al número
¿variable? No hay necesidad de almacenar el número de la calle como una cadena. A ver que pasa si lo hacemos..
var street: String = "5th Avenue" var number: String street = "Main Street" number = 10
Si asignamos un entero a número
, Xcode nos lanza otro error. El mensaje de error es claro. No podemos asignar un valor de tipo En t
a una variable de tipo Cuerda
. Esto no es un problema en los idiomas escritos de forma flexible, pero está en Swift.
Swift es un lenguaje fuertemente tipado en el que cada variable tiene un tipo específico, y ese tipo no se puede cambiar. Lee esta oración de nuevo para dejar que se hunda porque este es un concepto importante en Swift.
Para deshacernos del error, necesitamos declarar el número
variable como En t
. Eche un vistazo al ejemplo actualizado a continuación..
var street: String = "5th Avenue" var number: Int street = "Main Street" number = 10
Es importante que tengas en cuenta lo siguiente. Puedes declarar una variable con la var
palabra clave, y no es necesario declarar explícitamente el tipo de variable. Sin embargo, recuerde que cada variable y constante tiene un tipo en Swift. Si Swift no puede inferir el tipo, entonces se queja. Cada variable tiene un tipo, y ese tipo no se puede cambiar.
Las constantes son similares a las variables en términos de escritura. La única diferencia es que el valor de una constante no se puede cambiar una vez que tiene un valor. El valor de una constante es, bueno ... constante.
Para declarar una constante, usas la dejar
palabra clave. Eche un vistazo al siguiente ejemplo en el que declaramos. calle
como una constante en lugar de una variable.
let street: String = "5th Avenue" var number: Int street = "Main Street" number = 10
Si solo actualizamos la primera línea, reemplazando var
con dejar
, Xcode lanza un error por razones obvias. Intentar cambiar el valor de una constante no está permitido en Swift. Elimine o comente la línea en la que intentamos asignar un nuevo valor a calle
deshacerse del error.
let street: String = "5th Avenue" número var: Int // street = "Main Street" número = 10
Espero que estén de acuerdo en que declarar constantes es muy fácil en Swift. No hay necesidad de palabras clave exóticas o una sintaxis compleja. Declarar constantes es tan fácil como declarar variables, y eso no es una coincidencia.
El uso de constantes se recomienda en Swift. Si un valor no va a cambiar o no espera que cambie, entonces debería ser una constante. Esto tiene una serie de beneficios. Uno de los beneficios es el rendimiento, pero un beneficio más importante es la seguridad. Al usar constantes siempre que sea posible, agrega restricciones a su código, lo que resulta en un código más seguro.
La mayoría de los lenguajes de programación tienen una amplia gama de tipos para almacenar cadenas, enteros, flotantes, etc. La lista de tipos disponibles en Swift es concisa. Eche un vistazo a la siguiente lista:
En t
Flotador
Doble
Cuerda
Personaje
Bool
Es importante entender que los tipos anteriores no son tipos básicos o primitivos. Son tipos nombrados, que son implementados por Swift utilizando estructuras. Más adelante en esta serie exploramos las estructuras con más detalle, pero es bueno saber que los tipos que encontramos hasta ahora no son los mismos que los tipos primitivos que puede haber usado, por ejemplo, en Objective-C.
Hay muchos más tipos de datos en Swift, como tuplas, matrices y diccionarios. Los exploramos más adelante en esta serie..
Hay un tema más que tenemos que discutir, conversión de tipo. Eche un vistazo al siguiente fragmento de Objective-C. Este bloque de código genera el valor. 314.000000
a la consola.
int a = 100; flotador b = 3.14; NSLog (@ "% f", (a * b));
El tiempo de ejecución de Objective-C se convierte implícitamente una
a un valor de punto flotante y lo multiplica con segundo
. Vamos a reescribir el fragmento de código anterior usando Swift.
var a = 100 var b = 3.14 impresión (a * b)
Ignora el imprimir (_: separador: terminador :)
Funcionar por ahora. Primero quiero centrarme en la multiplicación de una
y segundo
. Swift infiere el tipo de una
, un En t
, y segundo
, una Doble
. Sin embargo, cuando el compilador intenta multiplicar una
y segundo
, se da cuenta de que no son del mismo tipo. Esto puede no parecerle un problema, pero es para Swift. Swift no sabe qué tipo debería ser el resultado de esta multiplicación. Debe ser un entero o un doble?
Para solucionar este problema, debemos asegurarnos de que ambos operandos de la multiplicación sean del mismo tipo. Swift no convierte implícitamente los operandos para nosotros, pero es fácil hacerlo. En el ejemplo actualizado a continuación, creamos un Doble
usando el valor almacenado en una
. Esto resuelve el error..
var a = 100 var b = 3.14 impresión (Doble (a) * b)
Tenga en cuenta que el tipo de una
no ha cambiado A pesar de que el fragmento de código anterior puede parecer una conversión de tipo, no es lo mismo. Nosotros utilizar el valor almacenado en una
para crear un Doble
, y ese resultado se usa en la multiplicación con segundo
. El resultado de la multiplicación es de tipo. Doble
.
Lo que hay que recordar es que Swift es diferente de C y Objective-C. No convierte implícitamente valores de variables y constantes. Este es otro concepto importante para comprender.
En el fragmento de código anterior, invocó su primera función, imprimir (_: separador: terminador :)
. Esta función es similar a la de Objective-C. NSLog
; imprime algo y añade una nueva línea. Para imprimir algo en la consola o en el panel de resultados de la derecha, invoque imprimir (_: separador: terminador :)
Y pasarle un parámetro. Puede ser una variable, una constante, una expresión o un literal. Echa un vistazo a los siguientes ejemplos.
var string = "esto es una cadena" let constante = 3.14 imprimir (cadena) imprimir (constante) imprimir (10 * 50) imprimir ("cadena literal")
También es posible utilizar la interpolación de cadenas para combinar variables, constantes, expresiones y literales. La interpolación de cuerdas es muy fácil en Swift. Envuelve las variables, constantes, expresiones o literales en \ ()
. Muy fácil.
let street = "5th Avenue" let number = 10 print ("Ella vive en \ (street) \ (número)")
Es clave que entiendas cómo Swift maneja las variables y las constantes. Si bien puede tomar algún tiempo acostumbrarse al concepto de constantes, una vez que haya adoptado esta mejor práctica, su código será mucho más seguro y fácil de entender. En el siguiente tutorial de esta serie, continuaremos nuestra exploración de Swift mirando colecciones.
Hemos creado una guía completa para ayudarlo a aprender Swift, ya sea que esté comenzando con lo básico o si desea explorar temas más avanzados..
Si desea aprender a usar Swift 3 para codificar aplicaciones del mundo real, consulte nuestro curso Crear aplicaciones de iOS con Swift 3. Ya sea que sea nuevo en el desarrollo de aplicaciones de iOS o desee cambiar de Objective-C, este El curso te ayudará a comenzar con Swift para el desarrollo de aplicaciones..