CursosEmpresasBlogLiveConfPrecios

Optionals y Nil

Clase 16 de 22 • Curso de Introducción a Swift (2019)

Clase anteriorSiguiente clase

Contenido del curso

Introducción a Swift
  • 1
    Qué aprenderás sobre Swift

    Qué aprenderás sobre Swift

    02:15
  • 2
    ¿Qué es Swift?

    ¿Qué es Swift?

    06:46
Variables, constantes y comentarios
  • 3
    Mi primer programa - Hello World

    Mi primer programa - Hello World

    07:50
  • 4
    Variables y Constantes

    Variables y Constantes

    07:27
  • 5
    ¿Cómo funcionan los Type Annotations?

    ¿Cómo funcionan los Type Annotations?

    05:29
  • 6
    Nomenclatura para nombrar variables

    Nomenclatura para nombrar variables

    09:14
  • 7
    Imprimir valores con la función print

    Imprimir valores con la función print

    05:13
  • 8
    Comentarios en el código

    Comentarios en el código

    05:42
Tipos de datos
  • 9
    Enteros

    Enteros

    09:11
  • 10
    Floats y Doubles

    Floats y Doubles

    08:11
  • 11
    Literales numéricos

    Literales numéricos

    13:23
  • 12
    Convertir entre tipos de datos

    Convertir entre tipos de datos

    11:38
  • 13
    Apodo para los tipos de datos con Type Alias

    Apodo para los tipos de datos con Type Alias

    04:41
  • 14
    Booleanos

    Booleanos

    10:01
  • 15
    Tuplas

    Tuplas

    10:08
  • 16
    Optionals y Nil

    Optionals y Nil

    07:50
Manejo de Optionals
  • 17
    Force unwrapping de una variable optional

    Force unwrapping de una variable optional

    08:12
  • 18
    Optional Binding

    Optional Binding

    12:50
  • 19
    Unwrap Implícito

    Unwrap Implícito

    07:04
Gestión de Errores
  • 20
    Uso de try y catch

    Uso de try y catch

    08:59
  • 21
    Aserciones y Precondiciones

    Aserciones y Precondiciones

    10:05
Conclusión
  • 22
    Cierre del Curso

    Cierre del Curso

    01:42
    Enzo Aliatis

    Enzo Aliatis

    student•
    hace 6 años

    typescript estas por ahí??

      Adrian Peralta

      Adrian Peralta

      student•
      hace 6 años

      :) me entero que typescript 3.7 tiene optionals, yo los conocía desde antes gracias a Rust el manejo de errores es muy poderoso en Rust ;)

      Alex hernandez mitre

      Alex hernandez mitre

      student•
      hace 4 años

      eso mismo pensé

    Fernando Maximiliano Acoltzi Santillan

    Fernando Maximiliano Acoltzi Santillan

    student•
    hace 5 años

    nil != null para los que viene de otro lenguaje de programación

    • nil (ausencia de valor)

    • null (apuntador a objeto vacío)

      Antonio Luis Gil Rodríguez

      Antonio Luis Gil Rodríguez

      student•
      hace 4 años

      En Javascript sería equivalente a

      • null: null
      • nil: undefined
      Fernando Romero

      Fernando Romero

      student•
      hace 3 años

      Por fin pude entender el undefine de typescript jajaja

    Usuario anónimo

    Usuario anónimo

    user•
    hace 4 años

    Para que les quede más claro les dejo este siguiente artículo: Optional y nil

      Luis Carlos Garavito Romero

      Luis Carlos Garavito Romero

      student•
      hace 3 años

      Gracias, me sirvió bastante

    José Javier Cueto Mejía

    José Javier Cueto Mejía

    student•
    hace 6 años

    👉🏽 Nil es ausencia de valor

      ro espinoza

      ro espinoza

      student•
      hace 6 años

      es una especie de NAN?

      José Javier Cueto Mejía

      José Javier Cueto Mejía

      student•
      hace 6 años

      digamos que nil es "igual" a null pero NAN es => Not-A-Number en JS

    Jerry Ontiveros Mendoza

    Jerry Ontiveros Mendoza

    student•
    hace 6 años

    cuando la conversion de datos falla, regresa un nil por la ausencia de valor

      Ricardo Ramos Hernandez

      Ricardo Ramos Hernandez

      student•
      hace 5 años

      Algo así, cuando la conversion falla la funcion Int() regresa un optional y dentro de ese optional tiene el valor de nil

      El nil es la ausencia de valor

    Juan David Salazar Gil

    Juan David Salazar Gil

    student•
    hace 4 años

    Quiero aprender programación en swift pero no sé nada de programación previa. Estoy en esta clase y aún no entiendo casi nada. Algún curso de programación que necesite para poder entender más esta clases de introducción al swift. Ya que no tengo conocimiento de ningún tipo de programación. Gracias

      Pablo Antipan Quiñenao

      Pablo Antipan Quiñenao

      student•
      hace 4 años

      Hola! Podrías empezar con el Curso de Programación Básica, y luego profundizar con el Curso Básico de Algoritmos y Pensamiento Lógico. Saludos!

    Duwal Abel Varillas Castro

    Duwal Abel Varillas Castro

    student•
    hace 4 años

    El nil de swift podria ser como el undefined de javascript?

      Usuario anónimo

      Usuario anónimo

      user•
      hace 4 años

      de lo que pude entender si, al final undifined es un valor indefinido o algo que no existe a comparación de null que es "existe pero no tiene un valor en partícular".

    Gaspar Dolcemascolo

    Gaspar Dolcemascolo

    student•
    hace 3 años

    Como puedes typerar una Tupla para evitar errores y tener todo mucho mejor ordenado

    typealias TPerson = (name: String, age: Int, born: String) let person: TPerson = (name: "Gaspar", age: 22, born: "Argentina") person.name
    César Humberto Grifaldo García

    César Humberto Grifaldo García

    student•
    hace 3 años
    /* Valores que pueden estar o no estar En Swift no existen nulos */ let possibleAge = "31" let convertedAge = Int(possibleAge)//Int? puede que sea un entero o no. Regresa Nil (ausencia de valor) //Cuando un valor llega a la interrogante de ¿Puede o no ser un entero? se le llama OPTIONAL //Cuando pasa esto se regresa un entero opcional = Int? //Diferencia entre Int e Int? //Int es valor que realmente es entero //Int? es un valor que puede regresa Nil (ausencia de valor) //Cuando no se este seguro si una variable contendrá un valor o no, entonces se declara como Int?, un valor opcional //Ejemplo var serverResponseCode : Int? = 404//Puede aparecer o no el codigo de error serverResponseCode = nil//Por ende se le asigna Int? y se iguala a nil
    Emmanuel Guerra Sánchez

    Emmanuel Guerra Sánchez

    student•
    hace 4 años

    Entiendo la diferencia pero no sé, sigue teniendo el mismo sentido semántico que null en Java o None en Python para mi.

    Guillermo Ramirez

    Guillermo Ramirez

    student•
    hace 5 años

    pero no podria usar una variable tipo age: Int?, por ejemplo para poder hacer una validasion como: if age > 18{ print("mayor de edad") } me saltaria un error, en ese caso como podria usar una variable de tipo optional en un condicional?

      Edward Fernandez

      Edward Fernandez

      student•
      hace 4 años

      En este caso lo que puedes hacer es:

      • Recomendado: definir un valor por defecto. Esto lo haces con ??
      var userAge: Int? = nil if (userAge ?? 0 >= 18) { print("Eres mayor de edad") } else { print("Eres menor de edad") }

      En este caso como userAge es nil entonces usará el valor 0.

      • No recomendado: forzar a que use el valor. Para ello usamos el !.
      if (userAge! >= 18) { print("Eres mayor de edad") } else { print("Eres menor de edad") }

      En este caso estas forzando a usar el valor de userAge PERO si llega a ser nil va a dar un error.

    Oscar Enriquez Cambray

    Oscar Enriquez Cambray

    student•
    hace 6 años

    ¡Vamos a por ello!

    Saul Vega Ramirez

    Saul Vega Ramirez

    student•
    hace 4 años

    Que pasa cuando declaras un let number: Int pero no se le asigna valor en la misma linea, eso es un nil? o que valor tiene si no puede tener asucencia de valor?

      Usuario anónimo

      Usuario anónimo

      user•
      hace 4 años

      Nada, excepto que intentes imprimir el valor sin haberlo antes inicializado (te arroja un error). Posterior de la declaración de tu constante, podrás asignarle un valor, que luego no podrá ser modificado.

    Hugo Andres Martinez

    Hugo Andres Martinez

    student•
    hace 4 años

    El nil como pudiera ser usado en una problematica de la vida real?

      David Stiven Rodríguez Taborda

      David Stiven Rodríguez Taborda

      student•
      hace 3 años

      En algun caso hace un par de años, tenía vectores de numeros, y necesitaba moverlos de varias formas. Por lo que al dejar un espacio vacio no podía usar 0, ya que ese podría ser un número común del vector. Así que dejaba Null para saber que ese espacio estaba realmente vacio.

    Andre Bezada

    Andre Bezada

    student•
    hace 4 años

    Todos los nil serían la ausencia de valor ocupando la misma memoria ? O mientras más nil's tenga más memoria uso?

      David Stiven Rodríguez Taborda

      David Stiven Rodríguez Taborda

      student•
      hace 3 años

      Según entendí, nil de Swift especialmente se refiere a la ausencia de valor, por lo cual, no ocuparía ningun espacio. En Objective C u otros lenguajes con el Null, esté sí haría referencia a un espacio en memoria vacio, por lo que entre más Null, más espacios en memoría vacios.

    Cristian Eduardo Samboní Castillo

    Cristian Eduardo Samboní Castillo

    student•
    hace 2 años

    nil: ausencia de valor de la variable. optionals: dato que no es exacto, datos pueden tomar valor nil.

    Bryan Condori Orellana

    Bryan Condori Orellana

    student•
    hace 2 años

    La razón de donde viene el Optional, por que la variable lleva la interrogante "?" Solo aparece este mensaje cuando alguien escribe el valor de la respuesta. Ejemplo:

    var SurveyAnswer : String? surveyAnswer = "42" print (surveyAnswer)

    Resultado: Optional("42") / Optional = ? Interrogante

    Alejandro Apodaca

    Alejandro Apodaca

    student•
    hace 3 años

    Esto me suena mucho al "null safety" en dart o kotlin

    Carlos Arturo Pimentel

    Carlos Arturo Pimentel

    student•
    hace 3 años

    En Rust sucede algo parecido, no existen la posibilidad de almacenar valores vacíos en la memoria y también tiene un tipo de valor opcional pero me parece que es más explícito que en swift.

    Ziutzel Grajales

    Ziutzel Grajales

    student•
    hace 4 años

    Hola, les recomiendo este resumen, me sirvió mucho.https://weiseratel.com/lenguaje/swift/opcionales/

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads