Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Operador Nil Coalescing

5/33
Recursos

Aportes 38

Preguntas 1

Ordenar por:

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

o inicia sesión.

let defaultUsername = "Bruce.Wayne"
var username: String?
//username = "miguel.serrato"
var usernameToBeUsed = username ?? defaultUsername
//si se descomenta la linea de asignacion de username a "miguel.serrato", el valor de la variable usernameToBeUsed sera "miguel.serrato",si no sera el valor por default que es "Bruce.Wayne"

He seguido estas primeras clases con la documentación oficial
https://docs.swift.org/swift-book/LanguageGuide/BasicOperators.html
Al mismo tiempo estoy leyendo este libro
iOS 14 Programming Fundamentals with Swift

resumen 👇🏽
c = a ?? b

Un buen ejemplo también podría ser cuando un usuario no agregó su foto de perfil, asignar una foto por defecto.

Mi reto

let defaultUser = "Felipe Carrasco"
var userName: String? = "Cristiano Ronaldo"

var userNameToUse = userName ?? defaultUser

Resumen

Una opción para manejar valores opcionales es proveer un valor por default usando el operador ??. Si falta el valor opcional, se usa el valor default.

let defaultAge = 18
var userAge: Int?

var ageToBeUsed = userAge ?? defaultAge

Se va a asignar el valor de userAge si existe, sino defaultAge.

Esta es la forma de escribir lo mismo pero con el operador ternario:

ageToBeUsed = (userAge != nil ? userAge! : defaultAge)

Al usar esta forma hay que realizar varias cosas como:

  1. validar que sea distinto de nil
  2. Realizar un Force Unwrapping

Nombrar un superhéroe mientras nadie sepa su identidad real

let aliasHeroName = "Superman"
var realNameKnown : String?

realNameKnown = "Clark Kent"

var realHeroIdentity = realNameKnown ?? aliasHeroName

En Js vendría siendo algo así, si mal no recuerdo
const defaultAge = 18 const userAge const ageToBeUsed = userAge || defaultAge

var a: String? = "Hola"
// Similar (a != nil ? a! : "ejemplo" )
var b = a ??  "ejemplo"

<
var UserNameForDefault = "Antonio Banderas"
var UserName : String? 
let Name = UserName ?? UserNameForDefault

var DefaultColorOfTheUser = "Red"
var UserColor : String?
let ColorSelected = UserColor ?? DefaultColorOfTheUser
>

En JavaScript tenemos tambien el Nullish Coalescing, con la misma sintaxis ??. No confundir con ||.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing

//Reto
let defaultUsername = "Harry.Potter"
var userUsername : String?
var usernameToBeUsed = userUsername ?? defaultUsername

let username = "Antonio Banderas"
var insertUsername: String? = “paul ruiz”

var usernameToUse = insertUsername ?? username

Todo el curso pense que decia “Juan Gabriel” por el cantante mexicano famoso jaajajajjaa apenas me di cuenta que lo dice por el, ya decia yo, si que era famoso el real juan gabriel

báseicamente lo entiendo como el elvis operator de kotlin

let defaultUserName = "Javier"
var userName: String?
var userNameUsed = userName ?? defaultUserName

😃

resumen:

let valorPorDefecto = "txs"
var valorObtenido : String?

var valorAUsar = ValorObtenido ?? valorPorDefecto
// se toma valor por defecto si valor obtenido es nil, caso contrario, se usa el obtenido. 
var userName: String?
var defaultUserName = "Uname"

userName = "Jacob"
print("Current user: \(userName ?? defaultUserName)")

Aquí está mi ejercicio:

let defaultName = "Ricardo Saenz"
var userName: String?

var nameToBeUsed = userName ?? defaultName

😃

//reto
var username: String?
let defaultUsername = "Antonio Banderas"

var usernameToUse = username ?? defaultUsername

El reto

let defaultUserName = "Juana la Alpaca"
var userName: String? = "Paco el Chato"

var userN = userName ?? defaultUserName

en javascript sería

var ageToBeUsed = userAge || defaultAge

let defaultName = "Antonio Banderas"
var userName:String?
userName = "Nicolas Chavez"
var userToBeUsed = userName ?? defaultName
// Reto
let defaultUserName = "Antonio Banderas"
var userName: String?

userName = "Will Montenegro"

var userNameReal = userName ?? defaultUserName

Me equivoqué de screenshot 😅

let defauldNickname = "Antonio Banderas"
var userNickname: String? = "Alexander24"

var username = userNickname ?? defauldNickname
var username: String?
var usernameUsed = username ?? "Antonio Banderas"
let userNameDefault = "perrito"
var userName: String?

//userName = "cesarcub"

let userNameToShow = userName ?? userNameDefault

print(userNameToShow)

Interesante, pero me mato esa anecdota de la variable con nombre default de antonio banderas.

Reto listo.

let defaultUserName = "Anonymous"
var userName: String?
userName = "Felipe Carrasco"
var userNameToBeUse = userName ?? defaultUserName
print("the user connected is \(userNameToBeUse)")