Optionals y Nil
Clase 16 de 22 • Curso de Introducción a Swift (2019)
Contenido del curso
Clase 16 de 22 • Curso de Introducción a Swift (2019)
Contenido del curso
Enzo Aliatis
Adrian Peralta
Alex hernandez mitre
Fernando Maximiliano Acoltzi Santillan
Antonio Luis Gil Rodríguez
Fernando Romero
Usuario anónimo
Luis Carlos Garavito Romero
José Javier Cueto Mejía
ro espinoza
José Javier Cueto Mejía
Jerry Ontiveros Mendoza
Ricardo Ramos Hernandez
Juan David Salazar Gil
Pablo Antipan Quiñenao
Duwal Abel Varillas Castro
Usuario anónimo
Gaspar Dolcemascolo
César Humberto Grifaldo García
Emmanuel Guerra Sánchez
Guillermo Ramirez
Edward Fernandez
Oscar Enriquez Cambray
Saul Vega Ramirez
Usuario anónimo
Hugo Andres Martinez
David Stiven Rodríguez Taborda
Andre Bezada
David Stiven Rodríguez Taborda
Cristian Eduardo Samboní Castillo
Bryan Condori Orellana
Alejandro Apodaca
Carlos Arturo Pimentel
Ziutzel Grajales
typescript estas por ahí??
:) 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 ;)
eso mismo pensé
nil != null para los que viene de otro lenguaje de programación
nil (ausencia de valor)
null (apuntador a objeto vacío)
En Javascript sería equivalente a
Por fin pude entender el undefine de typescript jajaja
Para que les quede más claro les dejo este siguiente artículo: Optional y nil
Gracias, me sirvió bastante
👉🏽 Nil es ausencia de valor
es una especie de NAN?
digamos que nil es "igual" a null pero NAN es => Not-A-Number en JS
cuando la conversion de datos falla, regresa un nil por la ausencia de valor
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
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
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!
El nil de swift podria ser como el undefined de javascript?
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".
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
/* 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
Entiendo la diferencia pero no sé, sigue teniendo el mismo sentido semántico que null en Java o None en Python para mi.
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?
En este caso lo que puedes hacer es:
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.
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.
¡Vamos a por ello!
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?
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.
El nil como pudiera ser usado en una problematica de la vida real?
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.
Todos los nil serían la ausencia de valor ocupando la misma memoria ? O mientras más nil's tenga más memoria uso?
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.
nil: ausencia de valor de la variable. optionals: dato que no es exacto, datos pueden tomar valor nil.
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
Esto me suena mucho al "null safety" en dart o kotlin
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.
Hola, les recomiendo este resumen, me sirvió mucho.https://weiseratel.com/lenguaje/swift/opcionales/