Saltearse al contenido

hello_world.swift

🔹 Tipos de Datos

Swift es un lenguaje fuertemente tipado con inferencia de tipos.

Strings

let saludo = "Hola, Swift!"
let nombre = "John"
print("\(saludo) \(nombre)")

Numbers

let entero: Int = 42
let decimal: Double = 3.14
print(entero + Int(decimal)) // 45

Booleans

let esVerdadero = true
let esFalso = false
print(esVerdadero, esFalso)

Optionals

var mensaje: String? = "Hola"
print(mensaje ?? "Sin valor") // "Hola"
mensaje = nil
print(mensaje ?? "Sin valor") // "Sin valor"
Tipos de datos y operadores
let entero: Int = 42
let decimal: Double = 3.14
let texto: String = "Hola, Swift!"
let lista: [Int] = [1, 2, 3]
let conjunto: Set<String> = ["A", "B", "C"]
let diccionario: [String: String] = ["clave": "valor"]

🔹 Estructuras de Control

Condicionales

let edad = 20
if edad >= 18 {
print("Mayor de edad")
} else {
print("Menor de edad")
}

Switch

let opcion = 2
switch opcion {
case 1:
print("Opción 1")
case 2:
print("Opción 2")
default:
print("Opción no válida")
}
otros ejemplos de switch
let resultado = [1: "uno", 2: "dos", 3: "tres"][opcion] ?? "otro"
print(resultado)

🔹 Funciones en Swift

func saludo() {
print("Hola desde una función!")
}
func suma(_ a: Int, _ b: Int) -> Int {
return a + b
}
saludo()
print(suma(3, 5))

Parámetros opcionales

func saludar(nombre: String, apellido: String = "Desconocido") {
print("Hola, \(nombre) \(apellido)")
}
saludar(nombre: "Juan")

Funciones de orden superior

func ejecutar(_ funcion: () -> Void) {
funcion()
}
ejecutar { print("Ejecutando función anónima") }

🔹 Colecciones (Arrays, Sets y Diccionarios)

Arrays

var lista = ["Swift", "iOS", "Xcode"]
lista.append("MacOS")
print(lista)

Sets (Colecciones sin duplicados)

let conjunto: Set<String> = ["Swift", "iOS", "Swift"]
print(conjunto) // {"Swift", "iOS"}

Diccionarios (Clave-Valor)

var diccionario: [String: String] = ["nombre": "Carlos", "edad": "25"]
print(diccionario["nombre"] ?? "Desconocido")

🔹 Bucles en Swift

For clásico

for i in 0..<lista.count {
print(lista[i])
}

For-in

for item in lista {
print("📝 \(item)")
}

While y Repeat-While

var contador = 0
while contador < 3 {
print("Iteración \(contador)")
contador += 1
}
repeat {
print("Iteración \(contador)")
contador += 1
} while contador < 6

🔹 OOP en Swift

class Persona {
var nombre: String
var edad: Int
init(nombre: String, edad: Int) {
self.nombre = nombre
self.edad = edad
}
func presentarse() {
print("Hola, soy \(nombre) y tengo \(edad) años.")
}
}
let p = Persona(nombre: "Carlos", edad: 30)
p.presentarse()

🔹 Enumeraciones en Swift

enum Lenguajes: String {
case Swift = "Swift"
case Java = "Java"
case Python = "Python"
}
let lenguaje = Lenguajes.Swift
print("Lenguaje seleccionado: \(lenguaje.rawValue)")

🔹 Manejo de Excepciones

enum ErrorDivision: Error {
case divisionPorCero
}
func dividir(_ a: Int, _ b: Int) throws -> Int {
if b == 0 {
throw ErrorDivision.divisionPorCero
}
return a / b
}
do {
let resultado = try dividir(10, 0)
print(resultado)
} catch {
print("❌ Error: División por cero")
}

🔹 Programación Asíncrona en Swift

import Foundation
func obtenerDatos() async {
print("⌛ Cargando datos...")
try? await Task.sleep(nanoseconds: 2_000_000_000)
print("✅ Datos cargados")
}
Task {
await obtenerDatos()
}

🔹 Protocolos en Swift

protocol Caminante {
func caminar()
}
class Persona: Caminante {
func caminar() {
print("Estoy caminando...")
}
}
let p = Persona()
p.caminar()

🔹 Extensiones en Swift

extension String {
func enMayusculas() -> String {
return self.uppercased()
}
}
print("swift".enMayusculas()) // "SWIFT"

Hello, Swift! 🚀