A Swift Tour: un recorrido por el lenguaje en un único fichero de código

Swift no necesita importar nada ni definir una función main(). El fichero ejecutable actúa directamente como punto de entrada:

print("Hola, mundo")
// Hola, mundo

Guarda el fichero como tour.swift y ejecútalo con swift tour.swift. También puedes usar un Playground en Xcode o Swift Playgrounds en iPad para ver los resultados al instante.

Constantes, variables y tipos básicos

let declara constantes y var variables. El compilador infiere el tipo del valor inicial y las conversiones entre tipos distintos son siempre explícitas:

let lenguaje = "Swift"
var version = 5
version = 6

let pi = 3.14159
print("(lenguaje) (version), pi = (pi)")
// Swift 6, pi = 3.14159

// Conversion explicita (nunca implicita)
let total = Double(version) + pi  // 9.14159

Arrays, diccionarios y control de flujo

var frutas = ["manzana", "pera", "naranja"]
frutas.append("kiwi")

for fruta in frutas where fruta.count > 4 {
    print(fruta)  // manzana, naranja
}

let capitales = ["ES": "Madrid", "FR": "Paris"]
if let cap = capitales["ES"] {
    print(cap)  // Madrid
}

Funciones con etiquetas de argumentos

func saludar(a nombre: String, desde ciudad: String) -> String {
    "Hola (nombre), desde (ciudad)"
}
print(saludar(a: "Ana", desde: "Sevilla"))

// Closure de ordenacion
let nums = [3, 1, 4, 1, 5]
print(nums.sorted { $0 < $1 })  // [1, 1, 3, 4, 5]

Structs y protocolos

protocol Describible { var descripcion: String { get } }

struct Punto: Describible {
    var x, y: Double
    var descripcion: String { "((x), (y))" }
    func distancia() -> Double { (x*x + y*y).squareRoot() }
}

let p = Punto(x: 3, y: 4)
print(p.distancia())  // 5.0

Manejo de errores

enum Fallo: Error { case divisionPorCero }

func dividir(_ a: Double, entre b: Double) throws -> Double {
    guard b != 0 else { throw Fallo.divisionPorCero }
    return a / b
}

do {
    print(try dividir(10, entre: 2))  // 5.0
    try dividir(1, entre: 0)
} catch Fallo.divisionPorCero {
    print("No se puede dividir por cero")
}

Este recorrido resume los pilares de Swift. Los artículos siguientes de esta serie profundizan en cada tema con ejemplos reales y casos de uso prácticos.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP