← Swift EspañolChapter 02 of 13

Variables y Tipos

## Objetivos de Aprendizaje - Comprender variables (var) y constantes (let) - Dominar los tipos de datos de Swift - Aprender inferencia de tipos - Trabajar con anotaciones de tipo ## Variables y Constantes ### Variables (var) Las variables pueden ser cambiadas despues de la inicializacion: ```swift var edad = 25 edad = 26 // OK var nombre = "Alicia" nombre = "Roberto" // OK ``` ### Constantes (let) Las constantes no pueden ser cambiadas despues de la inicializacion: ```swift let anioNacimiento = 1990 anioNacimiento = 1991 // Error! let pi = 3.14159 pi = 3.14 // Error! ``` ### Cuando Usar Cada Una - Usa `let` por defecto - Usa `var` cuando el valor debe cambiar - Las constantes permiten optimizaciones del compilador ## Tipos de Datos ### Tipos Enteros | Tipo | Tamano | Rango | |------|--------|-------| | Int8 | 8-bit | -128 a 127 | | Int16 | 16-bit | -32,768 a 32,767 | | Int32 | 32-bit | -2B a 2B | | Int64 | 64-bit | -9Q a 9Q | | Int | Plataforma | Depende de la plataforma | | UInt | Sin signo | Tamano de la plataforma | ```swift let positivo: UInt = 100 let negativo: Int = -50 let enteroPorDefecto: Int = 42 ``` ### Tipos de Punto Flotante | Tipo | Tamano | Precision | |------|--------|-----------| | Float | 32-bit | ~6 digitos | | Double | 64-bit | ~15 digitos | ```swift let piFloat: Float = 3.14 let piDouble: Double = 3.14159265359 // Double es el predeterminado para punto flotante let doublePorDefecto = 3.14159 // Double ``` ### Booleano ```swift let esSwift: Bool = true let esFacil: Bool = false // Usado en condiciones if esSwift { print("Swift es genial!") } ``` ### Cadena ```swift let saludo: String = "Hola" let nombre = "Mundo" let combinado = saludo + ", " + nombre + "!" ``` ### Caracter ```swift let letra: Character = "A" let emoji: Character = "" ``` ## Inferencia de Tipos Swift infiere los tipos cuando no se declaran explicitamente: ```swift let enteroInferido = 42 // Int let dobleInferido = 3.14 // Double let cadenaInferida = "Hola" // String let booleanoInferido = true // Bool ``` ## Anotaciones de Tipo Declarar tipos explicitamente: ```swift var enteroExplicito: Int = 100 var dobleExplicito: Double = 1.5 var cadenaExplicita: String = "Texto" var booleanoExplicito: Bool = false ``` ### Multiples Variables ```swift var rojo, verde, azul: Double rojo = 0.1 verde = 0.5 azul = 0.9 ``` ## Seguridad de Tipos Swift previene incompatibilidades de tipos: ```swift let conteo: Int = 10 // conteo = "diez" // Error: no se puede asignar String a Int ``` ### Conversion de Tipos ```swift let valorEntero: Int = 42 let valorDouble: Double = Double(valorEntero) // 42.0 let numeroDouble: Double = 3.14 let numeroEntero: Int = Int(numeroDouble) // 3 (truncado) ``` ## Literales Numericos ### Literales Enteros ```swift let decimal = 42 // Decimal let hex = 0x2A // Hexadecimal (42) let octal = 0o52 // Octal (42) let binario = 0b101010 // Binario (42) ``` ### Literales de Punto Flotante ```swift let flotanteDecimal = 3.14 let flotanteExponente = 0.314e1 // 3.14 let flotanteHex = 0x1.3p2 // Flotante hex (4.75) ``` ### Guiones Bajos para Legibilidad ```swift let unMillon = 1_000_000 let bytes = 0xFF_E0_00_00 ``` ## Cadenas y Caracteres ### Inicializacion de Cadenas ```swift let cadenaVacia = "" let otraVacia = String() let hola = "Hola" let mundo = "Mundo" let combinado = "\(hola), \(mundo)!" ``` ### Cadenas Multilinea ```swift let poema = """ Las rosas son rojas, Las violetas son azules, Swift es increible, Y tu tambien! """ ``` ### Caracteres Especiales ```swift let conTabulacion = "Nombre\tEdad" let nuevaLinea = "Linea1\nLinea2" let comilla = "Ella dijo \"Hola!\"" let barraInvertida = "Ruta: C:\\Usuarios" ``` ## Tuplas Agrupan multiples valores: ```swift let errorHTTP = (404, "No Encontrado") print(errorHTTP.0) // 404 print(errorHTTP.1) // "No Encontrado" // Elementos con nombre let persona = (nombre: "Alicia", edad: 30) print(persona.nombre) // "Alicia" print(persona.edad) // 30 ``` ### Descomposicion de Tuplas ```swift let (codigoEstado, mensaje) = errorHTTP print(codigoEstado) // 404 // Ignorar elementos let (soloCodigo, _) = errorHTTP ``` ## Alias de Tipo Crear nombres alternativos: ```swift typealias MuestraAudio = UInt16 typealias Punto = (x: Int, y: Int) let amplitudMaxima: MuestraAudio = UInt16.max let origen: Punto = (x: 0, y: 0) ``` ## Any y AnyObject ### Any Cualquier tipo incluyendo funciones: ```swift var cualquierValor: Any = 42 cualquierValor = "Cadena" cualquierValor = [1, 2, 3] ``` ### AnyObject Cualquier instancia de clase: ```swift var cualquierObjeto: AnyObject = NSObject() cualquierObjeto = UIView() // En plataformas Apple ``` ## Resumen - `var` para variables, `let` para constantes - Swift tiene Int, Double, Float, Bool, String, Character - La inferencia de tipos deduce los tipos automaticamente - Usar anotaciones de tipo cuando sea necesario - Las tuplas agrupan multiples valores - `Any` y `AnyObject` para tipos mixtos - Las constantes (let) son preferidas por seguridad

Comments

Comments powered by Giscus

To enable comments, add your Giscus embed code here.

Learn more about Giscus →