No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Optionals y Nil

16/22
Recursos

Aportes 22

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

typescript estas por ahí??

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

  • nil (ausencia de valor)

  • null (apuntador a objeto vacío)

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

👉🏽 Nil es ausencia de valor

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

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?

¡Vamos a por ello!

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/

Para que no les aparezca esa advertencia de que tienen un optional value, puede utilizar la siguiente bandera:

//Ponen un signo de exclamación al final si y solo si saben que ese optional tendrá un valor.
print(surveyAnwer!)

/*
 Once you're sure that the optional does contain a value,
 you can access its underlying value by
 adding an exclamation point (!) to the end of the optional's value.
*/
print(serverResponseCode!) //Return an optional value

if serverResponseCode != nil {
    print("serverResponseStatus has some value")
}

Aporte de la clase pasada

typealias edad = UInt8
let person = (name: "Federico", surname: "Monzon",age:  edad(28))
print("Hola mi nombre es \(person.name),  my apellido es \(person.surname) y tengo \(person.age)")

El nil en un opcional es la ausencia de valor, es decir no hay nada

Muy interesante este tema

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

Nil es la respuesta que se obtiene por ausencia de valor.

Optionals que pueden tener ausencia de valor

Nil equivale a la ausencia de valor