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.
