No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Adquiere por un a帽o todos los cursos, escuelas y certificados por un precio especial.

Antes: $249

Currency
$219/a帽o

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Comprar ahora

Termina en:

2D
1H
10M
20S

Optionals y Nil

16/22
Recursos

Aportes 21

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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(鈥渕ayor de edad鈥)
}
me saltaria un error, en ese caso como podria usar una variable de tipo optional en un condicional?

隆Vamos a por ello!

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 鈥渘ull 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