Saltar al contenido
KodigoSwift

Tutorial Swift – Tipos de Datos

Tipos de Datos

En esta ocasión me dispongo a hacer un resumen de los principales tipos de datos que se utilizan, al igual que ciertas características propias del lenguaje para con estos, así como algún que otro método interesante / útil.

Identificadores de Tipo

Comenzaremos hablando de los identificadores de tipos. Estos no son más que identificadores o nombres, si se quiere facilitar más su comprensión, que hacen referencias a tipos de datos del mismo nombre, alias a tipos de datos o tipos de datos compuestos.

Cuando decimos que un identificador hace referencia a tipos de datos del mismo nombre, nos referiremos a que Int funge como identificador del tipo de dato Int, de igual manera sucede con String o con Dictionary<String, Int> que directamente identifica al tipo de dato que se genera de la declaración Dictionary<String, Int>.

…en la línea 5  hemos usado la palabra clave typealias para crear un alias llamado “Point” de una tupla (Int, Int), luego en la línea 7 hacemos uso de este alias creando una variable “currentPosition” de tipo Point.

Int

Aquí tenemos al clásico Int que nos viene a ayudar con el almacenaje de números enteros, sobre este pudiéramos decir que en la mayoría de los casos no es necesario elegir un tamaño específico de número entero para utilizar en nuestro código como quizás hacemos en C# u otros lenguajes. Swift ofrece un tipo entero adicional, Int, que tiene el mismo tamaño que el tamaño de la plataforma actual, en la que estemos trabajando o en la que esté ejecutándose nuestro código:

  • En una plataforma de 32 bits, Int es del mismo tamaño que Int32.
  • En una plataforma de 64 bits, Int es del mismo tamaño que Int64.

A menos que usted necesite trabajar con un tamaño específico de número entero, utilice siempre Int para valores enteros en el código. Esto ayuda a la consistencia y la interoperabilidad del código. Incluso en las plataformas de 32 bits, Int puede almacenar cualquier valor entre -2147483648 y 2147483647, y es lo suficientemente grande para muchos rangos enteros.

Números de punto-flotante

Los números de coma o punto flotante no son más que aquellos que constan de un componente fraccional, como 3.14159, 0.1 y -273.15.

Los tipos de datos de coma flotante pueden representar una gama mucho más amplia de valores que los tipos enteros, por lo que pueden almacenar números mucho más grandes o más pequeños que los que se pueden almacenar en un Int. Swift ofrece dos tipos de números de punto flotante:

  • Double representa un número de coma flotante de 64 bits.
  • Float representa un número de coma flotante de 32 bits.

Double tiene una precisión de al menos 15 dígitos decimales, mientras que la precisión de Float puede ser tan pequeña como 6 dígitos decimales. El tipo de punto flotante apropiado a utilizar dependerá de la situación, de la naturaleza y el alcance de los valores que se necesita. En situaciones en las que uno u otro tipo sería apropiado, se aconseja usar Double.

Booleanos

Swift tiene un tipo de dato llamado Bool para la representación de valores booleanos.

Los tipos de las variables limonAgrio y tamarindoDulce se han deducido como Bool del hecho de que se inicializan con valores literales booleanos. Al igual que con Int y Double, no es necesario declarar constantes o variables Bool si se les establece a true o false tan pronto son creados. La inferencia de tipos ayuda a que el código sea más conciso y legible cuando se inicialicen constantes o variables con valores cuyo tipo ya es conocido.

Cadenas y caracteres

Una cadena es una serie de caracteres, como “hola, mundo” o “albatros”. Las cadenas de caracteres en Swift están representados por el tipo **String** que proporcionan una manera rápida y compatible con Unicode para trabajar con texto desde nuestro código. Veamos a continuación varios ejemplos de declaración e inicialización de variables String:

…en la primera línea declaramos una variable llamada name y explícitamente especificamos que esta es de tipo String, para finalizar la inicializamos con una cadena literal vacía en este caso. En la segunda línea el tipo de la variable es inferido por el compilador ya que la estamos inicializando con una cadena literal y en la tercera línea el tipo también es inferido ya que inicializamos la misma haciendo uso de la sintaxis de iniclialización del tipo de dato String.

Podemos comprobar si nuestra variable está vacía comprobando su propiedad booleana isEmpty:

…otros métodos interesantes (para nada novedosos aunque sí necesarios) pudieran ser:

…salida en pantalla:

Estos son solamente algunos métodos de la clase String, pero cuenta con mucho más, los invito a indagar en la documentación oficial de cada tipo de dato analizado en este tutorial swift.

¿Qué es un literal String?

Como ya estamos acostumbrados en otros lenguajes de programación la manera de incluir cadenas de caracteres predefinidos dentro de nuestro código es mediante literales de cadena o literales String. Un literal de cadena o una declaración explícita de una cadena de texto es una secuencia fija de caracteres rodeado por un par de comillas (“”).

Podemos utilizar una cadena literal como un valor inicial para una variable o constante, tal y como hemos visto en ejemplos anteriores:

En relación a este ejemplo y como ya he explicado Swift infiere el tipo String para la constante someString, ya que esta se inicializa con un valor literal de cadena de texto.

Interpolación String

La interpolación en una cadena de caracteres es una manera de construir un nuevo objeto String a partir de una mezcla de constantes, variables, literales y expresiones mediante la inclusión de sus valores dentro de una cadena literal. Cada elemento que se inserta en la cadena literal se envuelve en un par de paréntesis, precedido por una barra invertida:

…la salida en pantalla:

En el ejemplo anterior, el valor de la variable multiplicador se inserta en una cadena literal como (multiplicador). Como podemos inferir de la salida en pantalla, este marcador de posición se sustituye con el valor real de la variable (multiplicador) cuando se evalúa la interpolación de cadenas como parte del proceso de crear la cadena en su versión final. El valor de la variable multiplicador es también parte de otra expresión de la misma cadena literal, esta expresión calcula el valor de (Double(multiplicador) * 2.5) y como acabamos de explicar se inserta el resultado (7.5) en sustitución de la expresión.

Tuplas

Este tipo de dato puede estar conformado por una lista (separada por comas) de ceros o más tipos de datos, encerrados todos dentro de paréntesis.

…en este ejemplo creamos una tupla constante de nombre “httpERROR”, conformada por dos valores, Int y String. En la siguiente línea hacemos uso de nuestra tupla desde la función println, haciendo referencia al primer y segundo valor mediante los indices de 0 y 1, imprimiendo los valores antes declarados.

Las Tuplas entre sus ventajas de uso nos permiten, por ejemplo, que al ser retornadas por una función estemos devolviendo varios valores de una vez, pudiendo también especificar nombres de elementos para luego hacer referencia a sus valores independientes. Estos elementos son identificadores, en su declaración seguidos por dos puntos (:).

…la salida en pantalla es la siguiente:

De la línea 5 a la 26 declaramos la función minMax. Esta función recibe un arreglo de tipo int, con estos valores analiza cual es el más pequeño y el más grande, llegado a este punto devuelve una Tupla con estos dos valores.

En la línea 28 hacemos una llamada a nuestra función, especificando nuestro arreglo a trabajar y capturando la tupla devuelta en la constante “bounds”, a la que luego hacemos referencia en la línea 30 para imprimir los valores devueltos. Lo curioso y digno de mención, sobre esta referencia, es que la hacemos a los nombres de elementos min y max, aquellos que especificamos en la línea 5 cuando establecimos el retorno de nuestra función, específicamente en esta declaración:

…el operador “flecha” se usa para declarar el valor de retorno, seguido a este la tupla que devolveremos, donde nombramos a cada elemento para luego poder hacer referencia a los mismos de una manera mucho más cómoda y menos propensa a errores, quedando un código muy legible y claro.

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

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 sugerencia, ya sea errores a corregir, información o ejemplos a añadir será, más que bienvenida, necesaria!

Entradas relacionadas

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!