Primeros pasos con el lenguaje Swift

Tu primer programa Swift

Escribe tu código en un archivo llamado hello.swift:

print("Hello, world!")
  • Para compilar y ejecutar un script en un solo paso, use swift desde la terminal (en un directorio donde se encuentra este archivo):

Para iniciar una terminal, presione CTRL+ALT+T en Linux, o búsquelo en Launchpad en macOS. Para cambiar de directorio, ingrese cddirectory_name (o cd .. para regresar)

$ swift hola.swift
¡Hola, mundo!

Un compilador es un programa de computadora (o un conjunto de programas) que transforma el código fuente escrito en un lenguaje de programación (el lenguaje de origen) en otro lenguaje de computadora (el lenguaje de destino), y este último a menudo tiene una forma binaria conocido como código objeto. (Wikipedia)

  • Para compilar y ejecutar por separado, usa swiftc:
$ swiftc hola.swift

Esto compilará su código en el archivo hola. Para ejecutarlo, ingrese ./, seguido de un nombre de archivo.

$ ./hola
¡Hola, mundo!
  • O use el REPL rápido (Read-Eval-Print-Loop), escribiendo swift desde la línea de comando, luego ingrese su código en el intérprete:

Código:

func saludar(nombre: Cadena, apellido: Cadena) { print("Greetings \(name) \(surname)") }

let myName = “Homero” let mySurname = “Simpson”

saludar(nombre: miNombre, apellido: miApellido)

Vamos a dividir este código grande en pedazos:

  • func saludar(nombre: String, apellido: String) { // cuerpo de la función } - crea una función que toma un nombre y un apellido.

  • print("Saludos \(nombre) \(apellido)") - Esto imprime en la consola “Saludos”, luego nombre, luego apellido. Básicamente \(variable_name) imprime el valor de esa variable.

  • let myName = "Homer" y let mySurname = "Simpson" - crea constantes (variables cuyo valor no puedes cambiar) usando let con nombres: myName, mySurname y valores : "Homero", "Simpson" respectivamente.

  • saludo(nombre: miNombre, apellido: miApellido) - llama a una función que creamos anteriormente proporcionando los valores de constantes miNombre, miApellido.

** Ejecutándolo usando REPL: **

$ rápido
Bienvenido a Swift de Apple. Escriba: ayuda para obtener asistencia.
1> func saludo(nombre: Cadena, apellido: Cadena) { 
2. print("Saludos \(nombre) \(apellido)") 
3. } 
4>
5> let myName = "Homero"
miNombre: String = "Homero"
6> let mySurname = "Simpson"
miApellido: Cadena = "Simpson"
7> saludar(nombre: miNombre, apellido: miApellido)
Saludos Homero Simpson
8> ^D

Presione CTRL+D para salir de REPL.

Su primer programa en Swift en una Mac (usando un Playground)

Desde su Mac, descargue e instale Xcode desde Mac App Store siguiendo este enlace.

Una vez completada la instalación, abra Xcode y seleccione Comenzar con un Playground:

ingrese la descripción de la imagen aquí

En el siguiente panel, puede darle un nombre a su Playground o puede dejarlo MyPlayground y presionar Siguiente:

ingrese la descripción de la imagen aquí

Seleccione una ubicación donde guardar el Playground y presione Crear:

ingrese la descripción de la imagen aquí

El Playground se abrirá y su pantalla debería verse así:

ingrese la descripción de la imagen aquí

Ahora que Playground está en la pantalla, presiona + cmd + Y para mostrar el Área de depuración.

Finalmente, elimine el texto dentro de Playground y escriba:

print("Hello world")

Debería ver “Hola mundo” en el Área de depuración y “Hola mundo\n” en la Barra lateral derecha:

ingrese la descripción de la imagen aquí

¡Felicidades! ¡Has creado tu primer programa en Swift!

Instalación de Swift

Primero, descargar el compilador y los componentes.

A continuación, agregue Swift a su ruta. En macOS, la ubicación predeterminada para la cadena de herramientas descargable es /Library/Developer/Toolchains. Ejecute el siguiente comando en la Terminal:

export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"

En Linux, deberá instalar clang:

$ sudo apt-get install clang

Si instaló la cadena de herramientas de Swift en un directorio que no sea la raíz del sistema, deberá ejecutar el siguiente comando, usando la ruta real de su instalación de Swift:

$ export PATH=/path/to/Swift/usr/bin:"${PATH}"

Puede verificar que tiene la versión actual de Swift ejecutando este comando:

$ swift --version

Su primer programa en la aplicación Swift Playgrounds en iPad

La aplicación Swift Playgrounds es una excelente manera de comenzar a codificar Swift sobre la marcha. Para usarlo:

1- Descarga Swift Playgrounds para iPad desde App Store.

ingrese la descripción de la imagen aquí

2- Abre la aplicación.

3- En la pestaña Mis Playgrounds, toque + en la esquina superior izquierda y luego seleccione Plantilla en blanco.

4- Introduce tu código.

5- Toca Ejecutar mi código para ejecutar tu código.

6- Al principio de cada línea, el resultado se almacenará en un pequeño cuadrado. Tóquelo para revelar el resultado.

7- Para recorrer lentamente el código y rastrearlo, toque el botón junto a Ejecutar mi código.

Valor opcional y enumeración opcional

Tipo de opcionales, que maneja la ausencia de un valor. Los opcionales dicen “hay un valor y es igual a x” o “no hay ningún valor”.

Un Opcional es un tipo en sí mismo, en realidad una de las nuevas enumeraciones superpoderosas de Swift. Tiene dos valores posibles, Ninguno y Algunos (T), donde T es un valor asociado del tipo de datos correcto disponible en Swift.

Echemos un vistazo a este fragmento de código, por ejemplo:

let x: String? = "Hello World"

if let y = x {
   print(y)
}

De hecho, si agrega una instrucción print(x.dynamicType) en el código anterior, verá esto en la consola:

Optional<String>

¿Cuerda? es en realidad azúcar sintáctico para Optional, y Optional es un tipo por derecho propio.

Aquí hay una versión simplificada del encabezado de Opcional, que puede ver haciendo clic en la palabra Opcional en su código de Xcode:

enum Optional<Wrapped> {

 /// The absence of a value.
 case none

 /// The presence of a value, stored as `Wrapped`.
 case some(Wrapped)
}

Opcional es en realidad una enumeración, definida en relación con un tipo genérico Wrapped. Tiene dos casos: .none para representar la ausencia de un valor, y .some para representar la presencia de un valor, que se almacena como su valor asociado de tipo Wrapped.

Permítanme repasarlo de nuevo: String? no es una String sino una Optional<String>. El hecho de que Optional sea un tipo significa que tiene sus propios métodos, por ejemplo, map y planoMapa.