No tienes acceso a esta clase

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

Unwrap Impl铆cito

19/22
Recursos

Aportes 13

Preguntas 1

Ordenar por:

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

o inicia sesi贸n.

He aprendido varios lenguajes desde JS, TypeScript, Dart, C/C++, PHP, Python, C#, Ruby, etc. pero Swift me ha parecido un tanto 鈥淲TF?鈥

Vengo de haber aprendido programaci贸n con C y C++, es incre铆ble com Swift ha hecho evolucionar la forma de programar.

Mucho ojo con este incre铆ble temilla.
Cuando est谩n haciendo este casting especial de un x valor, aconsejo hacer un type(of: element) de su variable:

En el caso del ejemplo tendr铆amos algo as铆:

let assumedString: String! = "This is an unwrapped implicit string from an optional"
type(of: assumedString) //Is an optional value
let implicitString : String = assumedString
type(of: implicitString) //Now, is a normal variable with value

Cuando tiene 鈥!鈥 una variable, si no es nulo inmediatamente se convierte en el tipo opcional, en este caso en un string

Al principio se parecia mucho a typescript, y me encanto, pero mientras mas ahondo en el tema, es mas parecido a javascript y todas sus incongruencias

Esto esta bien interesante

muy bien explicado el uso del unwrap optional

Me explot贸 el cerebro, pero lo pude entender luego de repetir la clase

Entendi el unwrap implicito como las variables de kotlin que no puede ser nulas a menos que se lo digas explicitamente

Checking an optional value is called 鈥渦nwrapping鈥 because we鈥檙e looking inside the optional box to see what it contains

Source: https://www.hackingwithswift.com/example-code/language/what-are-implicitly-unwrapped-optionals

Bastante claro. asi se evitan error al futuro.

//Unwrap implicit, es decir variables no nulas fuertemente tipadas
let possibleString: String? = nil//"Un String opcional"
//let forcedString: String = possibleString!//Nunca hacer esto sin la validacion
let highlyTypedS: String! = "Valor"
let implicitString: String = highlyTypedS
let forcedStringTernary: String! = possibleString != nil ? possibleString! : "Default value"

Es un arma de doble filo el utilizar el unwrap implicito.