• ¿Qué es un lenguaje de programación?
  • Entorno de Desarrollo en macOS
WeiseRatel
  • ¿Qué es Swift?
  • ¿Hablamos?
  • Sobre WeiseRatel.com
No Result
View All Result
  • ¿Qué es Swift?
  • ¿Hablamos?
  • Sobre WeiseRatel.com
No Result
View All Result
WeiseRatel
No Result
View All Result
Home Lenguajes de Programación Swift

Swift – Variables y Constantes

Josué V. Herrera by Josué V. Herrera
in Swift
Reading Time: 9 mins read
A A
Variables y Constantes, Swift
11
SHARES
36
VIEWS
Compartir en FacebookCompartir en Twitter

Comenzamos nuestra serie de tutoriales Swift aprendiendo sobre qué es una variables y una constante, que es la inferencia de tipos, y una inevitable introducción a los tipos de datos.

¿Qué es una variable o una constante?

Una variable al igual que una constante son segmentos de memoria, son áreas en la memoria RAM de nuestro ordenador o dispositivo mobile, en las cuales podemos almacenar información.

[better-ads type=’banner’ banner=’159′ ]

Valores que en el caso de las variables podemos modificar y que en el caso de las constantes no. Un ejemplo bien simple de esto sería lo siquiente:

  • Caso Variable – Una aplicación donde gestionamos una ficha de clientes, y en la cual contamos con un campo donde registramos las compras que ha efectuado, este campo tiene que se variable para que el valor pueda ser modificado cada vez que el cliente efectúa una compra.
  • Caso Constantes – En la aplicación anterios también contamos con un registro de nuestros trabajadores, sus nombres, fecha de nacimiento y resto de datos. La fecha de nacimiento de una persona es un dato constante, y por ende no tiene sentido almacenarla en una variable así que abogariamos por una constante.

Mucha de la información que gestionamos en nuestras aplicaciones son variables o constantes: los clientes que atiende un UBER por día son un dato variables, mientras que la cantidad de puertas de dicho automóvil es un dato constante. Creo que ha quedado claro, pero aún hay matices que conocer.

Variables

Una variable no es más que un segmento de memoria en el cual podemos almacenar valores, los cuales podrán cambiar durante la ejecución de cierto bloque de código, de ahí que se llamen variables. Un espacio asignado en la memoria RAM de nuestro dispositivo.

[better-ads type=’banner’ banner=’160′ ]

Veamos la memoria RAM como una mesa, de un tamaño determinado y en cuya superficie podemos colocar objetos, o variables en este caso. Cuando sobre una mesa tenemos varios objetos y necesitamos colocar uno o varios más, ¿qué hacemos? exacto, buscamos un área vacia y ahí lo colocamos, siempre y cuando el espacio disponible sea lo suficientemente grande para que el objeto quepa.

De manera similar ocurre con la RAM, el sistema operativo lleva un control sobre el uso de la memoria y asigna las áreas libres basado en varios factores, entre ellos el tamaño de la variable.

Ahora, veamos una variable como un objeto reutilizable sobre la mesa, digamos que un plato y como todo plato la comida que podemos servir en él es variable, tanto en cantidad como en variedad, siempre y cuando no se salga del plato.

Con las variable podemos hacer lo mismo, una vez que le asignamos un valor, que sería el equivalente a la comida, podemos modificarlo tanto como sea necesario. Podemos por ejemplo declarar una variable de tipo numérico y asignarle el valor de 1 y luego asignarle nuevamente otro valor, digase: 6, 8, 20 y cualquier otro número.

Cuando digo tipo numérico me refiero al tipo de dato que almacenará la variable. Valor que asociábamos con la comida, y que al igual que esta pueden haber de distintos tipos. Podemos tener un valor numérico (5), de coma flotante (2.5), caracteres (a) o cadenas de caracteres (hola).

¿De qué nos sirve tener en cuenta los tipos de datos?

Pues cuando vamos a comer, en dependencia de la comida escojemos el plato, no usamos el mismo plato o los mismos cubiertos cuando vamos a comer arroz, papas fritas, frijoles o sopa. Para algunas de esta comidas nos vale un plato llano, mientras que para otras un plato hondo y una cuchara sería lo más apropiado, por razones más que evidentes.

De manera muy similar sucede en las ciencias informáticas, cuando le informamos al compilador que necesitamos declarar una variable que almacenará cierto tipo de dato: ayudamos a la optimización de nuestro código y a la asignación de memoria

Declaración de una variable

La declaración de una variable es bien sencilla e intuitiva. En Xcode creamos un nuevo Playground y en el template por defecto nos saldrá lo siguiente:

import UIKit

var str = "Hello, playground"

En la primera línea importamos la librería UIKit, digamos que esto sería como traernos a nuestro trabajo una caja de herramientas para usar mientras construimos nuestra aplicación. En próximos artículos explicaremos más sobre esto, lo abordo ligeramente para que no se queden con una duda total.

La última línea es la que nos importa, en esta declaramos una variable de nombre str (string) a la cual le asignamos una cadena de caracteres «Hello, playground» como valor asociado.

Pero ¿cómo sabe el compilador que estamos declarando una variable? Pues gracias a la sintaxis que hemos usado:

var nombre = valor

var es la palabra clave donde explícitamente declaramos nuestra intención de definir una variable, nombre pues sería el nombre asociado a la variable, el símbolo de = seguido de valor es como asociamos a una variable o una constante su valor asociado. Otro ejemplo:

var edad = 30

Constantes

Las constantes son muy similares a las variables, la diferencia principal reside en la manera como tratamos los valores que almacenamos en estos segmentos de memoria.

[better-ads type=’banner’ banner=’161′ ]

En nuestro ejemplo de la mesa y los platos, una constante sería un salero sobre la mesa (la memoria RAM), cuyo contenido siempre es constante, un salero siempre contiene sal, y su contenido no cambia durante toda la ejecución de aplicación, o mejor dicho, no cambia durante toda la cena.

Retomando un enfoque más técnico, digamos (por ahora) que las constantes tenemos que inicializarlas con un valor una vez que la declaramos, momento despues del cual no podremos modificar dicho dato.

Serían como variables de solo lectura, o mejor dicho son segmentos de memoria de solo lectura cuyo tamaño no podrá redimencionarse.

Declaración de una constante

Estas constantes se declaran con la palabra clave let: 

let name = "Archimedes of Syracuse"

let edad  = 30

La primera constante que hemos declarado ha sido inicializada con un valor de tipo String, en este caso un nombre y la segunda con un número haciendo referencia a una edad. También aplica a las constantes la inferencia de tipo como podemos observar en la constante name, que en este caso es de tipo String.

Ahora, los nombres no cambian pero la edad sí, por este motivo lo más lógico es que edad continue siendo una variable y con esto lo que busco es que se entienda que hay datos que siempre son los mismos, como la cantidad de pisos del tú edificio, el número PI, la constante Euler, el número de ruedas de un carro, el número de patas de tu perro o gato… etc.

Otros datos están dados a cambiar dada su naturaleza, como la edad, el año en que estamos, la cantidad de ciudadanos de un país, el costo de un producto… y así vemos como desde la programación necesitamos una manera de representar esta mutabilidad de los datos.

Dicho lo anterior creo que es mejor asociar a Archimedes con el número PI que con una edad de 30 años:

let name = "Archimedes of Syracuse"

// let edad = 30

let piNumber = Double.pi

Como el bueno de Archimedes lleva años muerto dudo que se cambie el nombre y aún cuando el número PI puede ser modificado si se calculan más decimales, la API de Swift se actualizará y el código que hemos declarado seguirá siendo válido.

Esta última es la razón por la cual usamos Double.pi en lugar de un valor literal especificado por nosotros y que luego sí tendríamos que modificar en caso de necesitar más precisión. Double.pi es una constante declarada dentro del propio lenguaje Swift.

Cuando declaramos una constante le informamos al compilador de que ese segmento de memoria una vez inicializado ya no se modificará su valor y esto permite al compilador optimizar el código basado en esta característica.

Nombre de Variables y Constantes

Los nombres de las variables y constantes pueden contener prácticamente cualquier carácter, incluyendo caracteres Unicode.

Veamos algunos ejemplos válidos:

let π = Double.pi

let 你好 = "你好世界"

var number7 = "Número al final del nombre."
var number4IsEven = "Número en el medio del nombre."

let 🐶🐮 = "Dog and Cow"

Ahora bien, y según como indica la propia documentación los nombres ya sea de una constante o variable no pueden jamás contener caracteres de espacio en blanco, símbolos matemáticos, flechas, valores Unicode escalares de uso privado o bien caracteres de línea o caja.

Tampoco pueden comenzar con un número, aunque los números pueden incluirse en otros lugares dentro del nombre, dígase al medio o al final tal y como vemos en el anterior ejemplo.

Algo que creo bastante evidente y que básicamente es así en prácticamente todo los lenguajes de programación es lo siguiente:

Una vez que hayamos declarado una constante o variable de un cierto tipo, no podemos declararlo de nuevo con el mismo nombre, o cambiar el tipo de dato para almacenar valores de un tipo diferente.

Tampoco podemos convertir una constante en variable y viceversa.

Conclusiones

Como podemos constatar Swift es un lenguaje con una sintaxis muy sencilla y limpia, se trabaja de una manera muy fluida, y a los que hemos trabajado con Objetive-C nos resulta un alivio más bienvenido.

En mi caso que he trabajado con C y C++ la sintaxis que Objetive-C me resultaba la peor de todas, muy enrevesada por gusto y quizás por eso valoro tanto la objetividad y el pragmatismo de Swift.

Falta aún mucho por aprender en nuestro camino a convertirnos en iOS Developer. Suscríbete a nuestra lista de correo y síguenos en nuestras redes sociales. Mantente al tanto de todas nuestras publicaciones.

Espero que todo cuanto se ha dicho aquí, de una forma u otra le haya servido de aprendizaje, de referencia, que haya valido su preciado tiempo.

Este artículo, al igual que el resto, será revisado con cierta frecuencia en pos de mantener un contenido de calidad y actualizado.

¡Cualquier duda o sugerencia, ya sea errores a corregir o ejemplos a añadir, será más que bienvenida, necesaria!

Josué V. Herrera

Josué V. Herrera

Desarrollador Swift / iOS. Llevo en el mundo de la informática más de 15 años, trabajado con varios lenguajes de programación y frameworks como Swift, C++ / Qt, C#, Java, entre otros. También he fungido como administrador de redes, bases de datos y sistemas Linux (algún que otro BSD) desde 2005 hasta la actualidad. Soy “Experto en Administración y Seguridad de Redes” por la Universidad Tecnológica Nacional FRVM de Córdoba, Argentina.

Artículos relacionados

La Sentencia Guard, Swift
Swift

Swift – La Sentencia Guard

Funciones de Órden Superior, Swift
Swift

Swift – Funciones de Órden Superior

¿Cómo iterar sobre tipos de datos propios?, Swift
Swift

Swift – ¿Cómo iterar sobre tipos de datos propios?

Trabajo con Fechas, Swift
Swift

Swift – Trabajo con Fechas

Load More
0 0 votos
Article Rating
Suscríbete
Login
Notificar de
guest

guest

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

0 Comments
Inline Feedbacks
Ver todos los comentarios

Suscríbete

Únete!

Únete!

Suscríbete a nuestra lista de correo y mantente actualizado con las nuevas publicaciones.

Se ha suscrito correctamente!

Entradas recientes

  • Estructuras de Datos – Lista Enlazada
  • MariaDB – Comandos Básicos
  • MariaDB – Instalación y Configuración
  • ¿Cómo hacer una instalación limpia de macOS Ventura?
  • Git – Instalación y Configuración

Categorías

  • Bases de Datos (2)
    • MariaDB (2)
  • Estructuras de Datos (3)
  • Gestión de Dependencias (2)
    • Swift Package Manager (2)
  • Git (2)
  • Guías (2)
  • Lenguajes de Programación (27)
    • Swift (27)
  • Sobre WiseRatel.com
  • Política de Privacidad
  • Política de Cookies
  • ¿Hablamos?
Powered by humans!

© 2022 WeiseRatel. All Rights Reserved.

No Result
View All Result
  • ¿Qué es Swift?
  • ¿Hablamos?
  • Sobre WeiseRatel.com

© 2022 WeiseRatel. All Rights Reserved.

wpDiscuz
RECIBE CONTENIDO SIMILAR EN TU CORREO

RECIBE CONTENIDO SIMILAR EN TU CORREO

Suscríbete a nuestra lista de correo y mantente actualizado con las nuevas publicaciones.

Se ha suscrito correctamente!

Cookies Para que este sitio funcione adecuadamente, a veces instalamos en los dispositivos de los usuarios pequeños ficheros de datos, conocidos como cookies. La mayoría de los grandes sitios web también lo hacen.
Aceptar cookies
Leer más
Ajustes de cookies
Configuración de Cookie Box
Configuración de Cookie Box

Ajustes de privacidad

Decida qué cookies desea permitir. Puede cambiar estos ajustes en cualquier momento. Sin embargo, esto puede hacer que algunas funciones dejen de estar disponibles. Para obtener información sobre eliminar las cookies, por favor consulte la función de ayuda de su navegador. MÁS INFORMACIÓN SOBRE LAS COOKIES QUE USAMOS.

Con el deslizador, puede habilitar o deshabilitar los diferentes tipos de cookies:

  • Block all
  • Essential
  • Functionality
  • Analytics
  • Advertising

Este sitio web

  • Esencial: Recordar sus ajustes de permisos de cookies
  • Esencial: Permitir cookies de sesión
  • Esencial: Recopilar la información que introduzca en el formulario de contacto de un boletín informativo y otros formularios en todas las páginas
  • Esencial: Hacer un seguimiento de lo que introduzca en la cesta de la compra
  • Esencial: Verificar que ha iniciado sesión en su cuenta de usuario
  • Esencial: Recordar la versión del idioma seleccionado

Este sitio web no

  • Recordar los datos de inicio de sesión
  • Funcionalidad: Recordar los ajustes de redes sociales
  • Funcionalidad: Recordar el país y la región seleccionados
  • Análisis: Hacer un seguimiento de las páginas visitadas y de la interacción en las mismas
  • Análisis: Hacer un seguimiento de la ubicación y la región según la dirección IP
  • Análisis: Hacer un seguimiento del tiempo pasado en cada página
  • Análisis: Aumentar la calidad de los datos de las funciones estadísticas
  • Publicidad: Adaptar la información y la publicidad a sus intereses según, p.ej., el contenido que ha visitado antes. (Actualmente no usamos segmentación ni cookies de segmentación)
  • Publicidad: Recopilar información personalmente identificable como el nombre y la ubicación

Este sitio web

  • Esencial: Recordar sus ajustes de permisos de cookies
  • Esencial: Permitir cookies de sesión
  • Esencial: Recopilar la información que introduzca en el formulario de contacto de un boletín informativo y otros formularios en todas las páginas
  • Esencial: Hacer un seguimiento de lo que introduzca en la cesta de la compra
  • Esencial: Verificar que ha iniciado sesión en su cuenta de usuario
  • Esencial: Recordar la versión del idioma seleccionado
  • Funcionalidad: Recordar todos los ajustes de redes sociales
  • Funcionalidad: Recordar el país y la región seleccionados

Este sitio web no

  • Análisis: Hacer un seguimiento de las páginas visitadas y de la interacción en las mismas
  • Análisis: Hacer un seguimiento de la ubicación y la región según la dirección IP
  • Análisis: Hacer un seguimiento del tiempo pasado en cada página
  • Análisis: Aumentar la calidad de los datos de las funciones estadísticas
  • Publicidad: Adaptar la información y la publicidad a sus intereses según, p.ej., el contenido que ha visitado antes. (Actualmente no usamos segmentación ni cookies de segmentación)
  • Publicidad: Recopilar información personalmente identificable como el nombre y la ubicación

Este sitio web

  • Esencial: Recordar sus ajustes de permisos de cookies
  • Esencial: Permitir cookies de sesión
  • Esencial: Recopilar la información que introduzca en el formulario de contacto de un boletín informativo y otros formularios en todas las páginas
  • Esencial: Hacer un seguimiento de lo que introduzca en la cesta de la compra
  • Esencial: Verificar que ha iniciado sesión en su cuenta de usuario
  • Esencial: Recordar la versión del idioma seleccionado
  • Funcionalidad: Recordar todos los ajustes de redes sociales
  • Funcionalidad: Recordar el país y la región seleccionados
  • Análisis: Hacer un seguimiento de las páginas visitadas y de la interacción en las mismas
  • Análisis: Hacer un seguimiento de la ubicación y la región según la dirección IP
  • Análisis: Hacer un seguimiento del tiempo pasado en cada página
  • Análisis: Aumentar la calidad de los datos de las funciones estadísticas

Este sitio web no

  • Publicidad: Adaptar la información y la publicidad a sus intereses según, p.ej., el contenido que ha visitado antes. (Actualmente no usamos segmentación ni cookies de segmentación)
  • Publicidad: Recopilar información personalmente identificable como el nombre y la ubicación

Este sitio web

  • Funcionalidad: Recordar los ajustes de redes sociales
  • Funcionalidad: Recordar el país y la región seleccionados
  • Análisis: Hacer un seguimiento de las páginas visitadas y de la interacción en las mismas
  • Análisis: Hacer un seguimiento de la ubicación y la región según la dirección IP
  • Análisis: Hacer un seguimiento del tiempo pasado en cada página
  • Análisis: Aumentar la calidad de los datos de las funciones estadísticas
  • Publicidad: Adaptar la información y la publicidad a sus intereses según, p.ej., el contenido que ha visitado antes. (Actualmente no usamos segmentación ni cookies de segmentación)
  • Publicidad: Recopilar información personalmente identificable como el nombre y la ubicación

Este sitio web no

  • Recordar los datos de inicio de sesión
Guardar cerrar