CodeGym /Cursos /Swift SELF /Introduccion a las variables

Introduccion a las variables

Swift SELF
Nivel 1, Lección 3
Disponible

1. Variables y cajas

Las variables son cosas especiales para almacenar datos. Cualquier dato. En Swift, los datos en un programa se almacenan mediante variables y constantes. Una variable se parece mucho, por su significado, a una caja: la mas normal y corriente, una caja.

Supongamos que escribiste en un papel el numero 13 y pusiste ese papel en una caja. Ahora podemos decir que «la caja almacena el valor 13».

Una variable (y tambien una constante) en Swift tiene tres propiedades importantes: tipo, nombre y valor.

El nombre se usa para distinguir una variable de otra. Es como la etiqueta de una caja.

El tipo de una variable define que tipos de valores/datos puede almacenar. En una caja para tartas guardamos una tarta, en una caja para zapatos, zapatos, etc. Igual que en la vida real.

El valor es un objeto, dato o informacion que se almacena en la variable.

Cada valor (y cada objeto) en el lenguaje Swift tiene su propio tipo. Por ejemplo, pueden existir estos tipos de datos: entero, numero decimal, texto, tipo Cat, tipo House, etc.

Cada variable (caja) tambien tiene su propio tipo. Una variable solo puede almacenar valores del mismo tipo que ella. Se usan distintas cajas para guardar distintas cosas: caja de bombones, caja para una docena de huevos, etc. Todo como en la vida real.

2. Creacion de una variable

En el lenguaje Swift, para crear una variable, lo mas habitual es usar una instruccion de este tipo:

var nombre: Tipo
Declaracion de variable

Donde Tipo es el tipo de la variable (coincide con el tipo de los valores que la variable podra almacenar). Y nombre es el nombre de la variable.

Ejemplos:

Creacion de variable: var, luego nombre y tipo. Descripcion
var a: Int
Creamos una variable llamada a de tipo Int.
var s: String
Creamos una variable llamada s de tipo String.
var c: Double
Creamos una variable llamada c de tipo Double.

Variables constantes

Tambien en Swift se usan mucho variables a las que solo se les puede asignar un valor una vez: se declaran con let:

let nombre: Tipo = Valor
Declaracion de constante

El codigo con estas variables se lee muy facilmente: ves el valor una vez y te lo quedas en la cabeza todo el tiempo.

En realidad, al usar let, creas una constante: el valor no puede cambiar despues de la asignacion:

let appName : String = "SuperApp"
appName = "MegaApp"   // ❌ Error: el valor no puede cambiarse

Si el valor debe cambiar, usa la palabra clave var.

Los dos tipos mas usados son los numeros enteros (se indican con la palabra Int) y el texto (se indica con la palabra String). Tambien es muy popular el tipo Double, que representa numeros decimales (reales).

3. Asignacion

Como ya se ha dicho, una variable tiene nombre, tipo y valor. Ya hemos visto el nombre y el tipo, pero, ¿y el valor? ¿Como metemos un valor en una variable?

Para meter un valor en una variable existe una operacion especial: la operacion de asignacion. Copia el valor de una variable a otra. No lo mueve, sino que lo copia. Como un archivo en el disco. Esta asignacion tiene este aspecto:

nombre = valor
Operacion de asignacion

Donde nombre es el nombre de la variable, y valor es el valor que se introducira en la variable. Como valor puede aparecer un valor concreto, el nombre de otra variable o incluso una expresion con variables.

Ejemplos:

var i: Int          // Se crea la variable i
var a, b: Int       // Se crean las variables a, b
var x: Int          // Se crea la variable x

i = 3               // Se asigna el valor 3 a la variable i.

a = 1               // Se asigna el valor 1 a la variable a.
b = a + 1           // Se asigna el valor 2 a la variable b.

x = 3               // Se asigna el valor 3 a la variable x.
x = x + 1           // En esta linea, el valor de x aumenta en 1; x ahora vale 4.
Nota

En Swift una variable debe inicializarse obligatoriamente antes de la primera lectura (antes de usar su valor). Es decir, puedes declarar var x: Int, pero leer x antes de asignarle un valor no se puede.

El signo igual

Para la operacion de asignacion se usa el signo igual =. No es comparacion, no es igualdad. Es precisamente la orden de copiar el valor de la derecha del signo igual a la variable que esta a la izquierda. Para comparar, en el lenguaje Swift se usa el doble igual ==.

4. Declaracion corta de variables: inferencia de tipos

En Swift tambien hay una forma practica de declarar una variable y asignarle un valor al mismo tiempo. Es muy sencillo: escribes el nombre de la variable, el signo igual y el valor.

let appName = "SuperApp"

Este codigo se lee mas o menos asi: «crea la variable appName y pon en ella el valor "SuperApp"». El tipo de la variable se determina automaticamente. Swift mira el valor de la derecha y saca la conclusion: si es una cadena, el tipo es String; si es un numero sin punto, Int; si es un numero con punto, Double, etc.

let appName = "SuperApp"
print("App:", appName) // App: SuperApp

En este ejemplo, el compilador de Swift entiende por si solo que appName tiene tipo String. No tuvimos que escribir el tipo manualmente.

Este mecanismo se llama inferencia de tipos (type inference). Reduce la cantidad de codigo innecesario y hace los programas mas cortos y mas faciles de leer.

Por cierto, este metodo tambien funciona con var:

var appName = "SuperApp"
print("App:", appName) // App: SuperApp

Solo recuerda que esto sigue siendo una declaracion de variable: no puedes cambiar el tipo de la variable despues de crearla. Este codigo no funcionara:

var appName = "SuperApp"
appName = 123

5. Nombre de la variable: que se puede y que no

Estos son algunos hechos utiles que conviene conocer al crear variables:

  • El nombre de la variable puede ser cualquier cosa (por ejemplo, temperature, score, userAge).
  • Pero hay restricciones: no puede empezar por un digito, y no puede coincidir con palabras reservadas de Swift (por ejemplo, no puedes llamar a una variable if o switch).
  • No puede contener caracteres especiales. En la practica, en los nombres se usa _ (el simbolo $ en Swift se considera reservado para usos internos; en codigo didactico no lo usamos).
  • En el nombre importa la diferencia entre minusculas y mayusculas (Age y age son variables distintas).
  • Normalmente se usa el estilo camelCase: la primera letra va en minuscula y despues cada palabra empieza con mayuscula (userAge, maxScore).

Ejemplos de nombres permitidos:

var x123 = 1
var koteika = "Barsik"
let PI = 3.14
let MAIN_PATH = "c:/"

Ejemplos de nombres prohibidos:

let 1first = 1           // el nombre no puede empezar por un digito
let number# = 25         // el simbolo # no puede usarse en el nombre
let name" = "John"       // las comillas en el nombre no son validas
let pi+e = 5.123         // el nombre no puede contener +

Todo lo demas lo aprenderas en lecciones futuras. Y ahora una pregunta de logica: ¿en cuantos pasos se puede meter un gato en una caja?

6. Gatos y cajas

img

Como atrapar un gato:

  1. Coja una caja vacia.
  2. Espera.

Broma 🙂

Bueno, quiza se puedan meter tantos gatos como quieras en una caja, pero en una variable solo puedes poner un unico valor. Y con eso se relacionara la siguiente tarea.

7. Breve historia de Swift

Para entender algunas caracteristicas de Swift, conviene retroceder un poco hasta la epoca en que el lenguaje principal de desarrollo para iOS y macOS era Objective-C. Este lenguaje aparecio en la decada de 1980 y heredo muchas caracteristicas de C: sintaxis compleja, corchetes inusuales para llamar metodos y un monton de detalles historicos que con el tiempo resultaron cada vez menos comodos para los proyectos modernos.

A comienzos de la decada de 2010, Apple se enfrento a un problema tipico de las plataformas maduras: el ecosistema era enorme, pero el lenguaje en el que se escribian las aplicaciones quedaba por detras en comodidad y seguridad frente a lenguajes mas modernos. La empresa decidio crear una nueva herramienta, mas facil de leer, mas segura con la memoria y mejor aprovechada por los compiladores modernos.

El desarrollo de Swift comenzo dentro de Apple alrededor de 2010. El objetivo era bastante practico: crear un lenguaje que acelerara el desarrollo y redujera los errores, pero que siguiera siendo compatible con las bibliotecas existentes de Objective-C. Eso permitio pasar poco a poco al nuevo lenguaje sin reescribir todo el ecosistema desde cero.

Swift se presento por primera vez en junio de 2014 en la conferencia WWDC. Desde el principio parecia mucho mas moderno que su predecesor: sintaxis mas clara, inferencia automatica de tipos, trabajo seguro con valores Optional y un sistema de tipos mas estricto.

Ya en 2015 Swift paso a ser open-source, y el lenguaje empezo a evolucionar mas rapido: aparecieron nuevas posibilidades como async/await, mejoras en la biblioteca estandar y herramientas como Swift Package Manager. Hoy ya esta disponible la version 6 del lenguaje.

En realidad, Swift no se creo solo como «otro lenguaje mas», sino como el lenguaje principal de desarrollo para toda la plataforma Apple. Debia ser suficientemente sencillo para principiantes y, al mismo tiempo, lo bastante potente para aplicaciones grandes.

No necesitamos estudiar toda la historia de Swift. Vamos a programar en Swift 6 moderno y a usar sus ideas principales: seguridad de tipos, codigo legible y una cantidad minima de magia oculta.

1
Tarea
Swift SELF, nivel 1, lección 3
Bloqueada
Tres réplicas
Tres réplicas
1
Tarea
Swift SELF, nivel 1, lección 3
Bloqueada
Panel de ciudades
Panel de ciudades
1
Tarea
Swift SELF, nivel 1, lección 3
Bloqueada
Concatenación del resultado
Concatenación del resultado
1
Tarea
Swift SELF, nivel 1, lección 3
Bloqueada
Dos entradas de registro
Dos entradas de registro
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION