• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • INICIO
  • CANAL DE YOUTUBE
  • CONTACTAR

másQteclas

Tecnología para todos

  • Podcasts
  • Noticias
  • Artículos
  • Tutoriales

Usando los tipos de datos opcionales en Swift

6 abril, 2015 por José Manuel Ramírez

Una de las cosas que nos ha traído de cabeza a los programadores a lo largo de los tiempos es qué ocurre cuando una de las variables que tenemos en nuestro código carece de valor. En este caso el lenguaje de programación Swift pretende dar una nueva vuelta de tuerca al problema

Nos va a permitir el uso de un nuevo concepto denominado Opcionales (Optionals) en situaciones donde hemos de permitir una ausencia de valor para una variable. Si ya sois unos programadores experimentados en el mundo Apple lo primero que tenéis que saber es que los opcionales no existen ni en el lenguaje C ni en el lenguaje Objective-C. Es este último, lo más aproximado que tenemos para llegar a los opcionales en Swift es la posibilidad de, por ejemplo, devolver un valor de tipo nil en un método M siempre que este método retorne un objeto. Significará entonces que M va a devolver un objeto que no es válido y lo tendremos que tener en cuenta a la hora de su manipulación para evitar errores en tiempo de ejecución.

Sin embargo, como os comentaba, esto solamente sirve para trabajar con objetos. El problema viene cuando tenemos estructuras de datos, tipos básicos en C, o enumeraciones. Para este tipo de datos, los métodos en Objetive-C típicamente devuelven un valor especial (como un objeto de tipo NSNotFound, una constante numérica, etc.) que indicará la ausencia de un valor. El programador que use este enfoque asume que la llamada al método va a devolver un valor especial y tendrá que realizar las comprobaciones pertinentes en el código.

Opcionales en Swift

Los opcionales en Swift permiten indicar la ausencia de un valor para cualquier tipo de dato sin necesidad de usar constantes especiales. El siguiente ejemplo muestra el uso de opcionales en Swift para poder hacer frente a la ausencia de un valor. Una constante de tipo String tiene un método llamado toInt que intenta convertir un valor String (cadena de caracteres) a un valor Int (número entero). Sin embargo, como es obvio no todas las cadenas de caracteres pueden ser convertidas a un número entero. La cadena “123” puede ser convertida al numero 123 pero la cadena “hola mundo” no por no tener una posible representación de un entero.

​let​ ​posibleNumero​ = ​»123″
​let​ ​numeroConvertido​ = ​posibleNumero.​toInt​()
​// la constante numeroConvertido será de tipo «Int?» ó “Int opcional»

Debido a que el método toInt puede fallar, va a devolver un Int opcional en lugar de un Int. Un opcional Int es escrito como Int? en lugar de Int a secas. El símbolo interrogación cerrada indica que el valor que puede contener la variable/constante es opcional, es decir, puede contener cualquier valor entero o puede contener ningún valor. (No puede contener otra cosa, como un valor Bool o un valor String. O es un Int, o no es nada). Podremos establecer una variable opcional a un estado sin valor mediante el valor especial nil como vemos en el siguiente ejemplo:

​var​ ​codigoRespuestaServidor​: ​Int​? = ​404
​// la variable codigoRespuestaServidor contiene el valor Int 404
​codigoRespuestaServidor​ = ​nil
​// la variable codigoRespuestaServidor ahora no contiene ningún valor

Tenemos que tener en cuenta que el valor nil no puede ser usado con variables y constantes no opcionales. Si una constante o variable en nuestro código fuente necesita trabajar con ausencia de valor en unas determinadas condiciones siempre hemos de declararla como un valor opcional del tipo que necesitemos, tal y como hemos visto en los ejemplo anteriores. Si definimos una variable o constante opcional sin inicializar, es decir, sin un valor inicial el compilador de XCode establecerá el valor nil por defecto para la misma.

​var​ ​respuesta​: ​String​?
​// la variable respuesta será inicializada por defecto a nil

Para terminar con este artículo hemos de decir que el valor nil en Swift no es lo mismo que el valor nil en Objetive-C. En Objetive-C nil es un puntero a un objeto inexistente mientras que en Swift NO es un puntero, sino que es la ausencia de cualquier valor. Los opcionales en Swift de cualquier tipo pueden ser establecidos a nil, no solo los objetos.

Pues hasta aquí el concepto de opcionales en Swift. Espero que te haya parecido interesante el nuevo concepto que nos propone Apple para el tratamiento de la ausencia de valor en nuestras variables/constantes y que seguro que nos va a facilitar bastante la prevención de errores y la depuración de nuestras aplicaciones. De todas maneras, si tienes alguna duda ponte en contacto conmigo mediante este formulario y estaré gustoso de atenderte. Nos leemos en el próximo!

Adiós, os!

Publicado en: Artículos Etiquetado como: Programación

Acerca de José Manuel Ramírez

🚀 Explorador de gadgets al límite | 🎥 Sinceridad en cada review | 💡 Descubre la magia detrás de cada dispositivo conmigo | 🛠️ Consejos, trucos y opiniones sin filtro. Si te apasiona la tecnología como a mí, este es tu canal #Gadgets #TechLover #OpinionesReales

Barra lateral principal

Canal de Youtube

🛍 Enlaces patrocinados

Haz tu compra en estos enlaces patrocinados y colabora con la web sin coste adicional para ti. ¡Gracias!

Chuches en Amazon Chuches en Aliexpress Chuches en Banggood Chuches en Geekbuying

Mi libro


Libro servidores NAS

banner

Footer

másQteclas es la web donde encontrarás mucha información relacionada con la tecnología en lo que a hardware y software se refiere. Tendrás reviews de productos, tutoriales paso a paso, podcasts diarios, vídeos en Youtube, noticias tecnológicas y mucho, mucho más. ¡Únete a la comunidad masqueteclera!

Información:

  • Quién soy
  • Política de cookies
  • Política de privacidad
  • Suscripción a la lista de correo
  • Contactar

Busca en la web …

  • Facebook
  • Instagram
  • Telegram
  • Twitter

Copyright © · másQteclas 2021