Categories
Swift Development

100 Dias de Swift Día 3

Día 3

Estas son mis notas del curso hackingwithswift

Entrada Anterior

“Computers are like Old Testament gods: lots of rules and no mercy.”

Joseph Campbell

“Las computadoras son como el Antiguo Testamento : Un montón de reglas y sin misericordia .”

Joseph Campbell

Operators and conditions

Operadores y condiciones

Los operadores nos permiten combinar diferentes tipos de datos, los operadores son símbolos matemáticos, como «+» y «-», en Swift hay muchos de estos.

Empecemos con dos variables de ejemplos

let primerPuntaje = 12
let segundoPuntaje = 8

Podemos sumar y restar de esta forma

let total = primerPuntaje + segundoPuntaje
let diferencia = primerPuntaje - segundoPuntaje

y podemos dividir y multiplicar usando «*» y «/» :

let producto = primerPuntaje * segundoPuntaje
let división = primerPuntaje / segundoPuntaje

Swift tiene un operador especial para calcular el residuo de una operación, calcula cuántas veces un numero cabe en otro, entonces regresa el valor que queda.

let residuo = 25 % segundoPuntaje
El resultado es 1

Operator overloading

Operator overloading es una forma sofisticada de decir que lo que el operador hace depende del valor con el que lo usemos aquí un ejemplo + puede sumar números

let sentidoDeLaVidaElUniversoYTodoLoDemás = 42
let elDobleSentidoDeLaVidaElUniversoYTodoLoDemás = 42 + 42

//disculpa la fuerte referencia a The Hitchhiker's Guide to the Galaxy, de Douglas Adams así venia en el curso 😅

Pero también puede unir cadenas de texto

let celos = "Estos celos me hacen "
let acción =  celos + "Daño"

Incluso podemos unir Arrays

let primeraMitad = ["Jorge", "Hernán"]
let segundaMitad = ["Eduardo", "Luis", "Óscar"]

let 🐯Norte =  primeraMitad + segundaMitad

Recuerda que Swift no permite mezclar diferentes tipos de datos así que no trates de sumar un String y un Int

Compound assignment operators

Swift permite combinar los operadores con un cambio de valor, de esta forma podemos reasignar valores en un solo paso, usando los operados que ya conocemos «+,-,*,/» pero con «=» al final

Por ejemplo

var puntaje = 95
puntaje -= 5

De forma similar podemos combinar dos Strings en un paso

var refrán = "Camarón que se duerme"
refrán += " se lo lleva la corriente"

Comparison operators

Estos operadores funciona mas o menos como en matemáticas

let primerPuntaje = 6
let segundoPuntaje = 4

hay dos operadores para revisar igualdad:

« == » revisa que dos valores sean iguales y « != » que se pronuncia no iguales y revisa que dos valores no sean el mismo

primerPuntaje == segundoPuntaje
primerPuntaje != segundoPuntaje

Hay cuatro operadores para comparar valores como en matemáticas

« > » mayor que

« < » menor que

« >= » mayor o igual que

« <= » menor o igual que

primerPuntaje >= segundoPuntaje
primerPuntaje <= segundoPuntaje

Ademas estos funciona con Strings también, ya que las Strings tienen un orden alfabético natural

"Taylor" <= "Swift"

Conditions

Condiciones ahora que conocemos los operadores podemos usar declaraciones condicionales con « if »

Para demostrar esto usaremos una de las funciones de Swift llamada « print( )» que nos sirve para mostrar texto

Por ejemplo podemos usar una condición cuando se llega al puntaje mas alto para imprimir un mensaje de victoria

let primerPuntaje = 30
let segundoPuntaje = 70

if primerPuntaje + segundoPuntaje == 100 {
 print("Ganaste 🥳")
}

El código entre las llaves « { } » se ejecutara cuando la condición sea cierta, y puedes ademas proveer una alternativa si la condición retorna falso usando « else »

if primerPuntaje + segundoPuntaje == 100 {
 print("Ganaste 🥳")
} else {
 print("Sigue intentando")
}

Puedes ademas proveer mas condiciones usando « else if»

if primerPuntaje + segundoPuntaje == 100 {
 print("Ganaste 🥳")
} else if primerPuntaje + segundoPuntaje == 50 {
 print("Bien vas a la mitad sigue intentando")
}else {
 print("Sigue intentando")
}

Combining conditions

Swift tiene tiene dos operadores para combinar operadores estos son « && » (pronunciado «y») y « || » (pronunciado « o » )

Por ejemplo

let edad1 = 16
let edad2 = 21
if edad1 > 18 && edad2 > 18 {
 print("Ambos son mayores de edad")
}

En esta caso Swift no ejecutara el código pues la primera condición no es verdadera de hecho ni siquiera revisara la segunda pues la primera es falsa

Por otro lado el operador « Or » evaluara las segunda condición incluso si la primera no es verdadera

if edad1 > 18 || edad2 > 18 {
 print("Al menos uno es mayor de edad")
}

Aunque se pueden usar mas de un && y || en una condición lo mejor es mantener las cosas simples para facilitar la lectura

The ternary operator

Operadores terciarios

Existe un operador muy poco usado llamado operador terciario « : »

//Bueno el curso decía eso pero yo lo uso mucho en SwiftUI 

Aqui un ejemplo

print(edad1 > 18 && edad2 > 18 ? "Ambos son mayores de edad" : "Alguno de ellos no lo es")

Switch statements

Si tienes muchas condiciones if y else es mejor usar otra estructura llamada « switch case » veamos el siguiente ejemplo

let clima = "soleado"

Se puede usar switch en un bloque para para imprimir diferentes mensajes

switch clima {
case "lluvia":
    print("Lleva un paraguas")
case "nieve":
    print("Usa un abrigo ")
case "soleado":
    print("Usa protector solar")
default:
    print("¡Disfruta tu día!")
}

En el ultimo ejemplo « default » es requiero por Swift para asegurarnos que se cubran todos los posibles casos

Swift solo correrá el código dentro de cada caso si quieres que Swift pase al siguiente caso usa « fallthrough »

switch clima {
case "lluvia":
    print("Lleva un paraguas")
case "nieve":
    print("Usa un abrigo ")
case "soleado":
    print("Usa protector solar")
    fallthrough
default:
    print("¡Disfruta tu día!") 
}

Range operators

Swift nos ofrece dos maneras de hacer rangos « ranges » para eso tenemos los operados « ..< » y « … » el primer crear un rango de valores excluyendo el ultimo valor, el segundo crear un rango de valores que incluye el ultimo valor

Por ejemplo

let rango = 1..<5
//contiene los números 1,2,3 y 4

let rango2 = 1...5
//contiene los valores 1,2,3,4 y 5

Los rangos pueden ser usados en un switch

let puntaje = 85

switch puntaje {
case 0..<50:
    print("fallaste")
case 50..<85:
    print("lo hiciste bien")
default:
    print("¡Lo hiciste genial!")
}

Resumen

Los operados en swift sirven para hacer operaciones aritméticas +,-,*,/

Hay operadores que sirven para modificar tus variables en un paso como += y -=

Puedes usar if, else y else if para correr código en base a una condición

Swift tiene un operador terciario que si bien no es muy conveniente usarlo en bloques de código de Swift es mejor usarlo solo en SwiftUI

Si tenemos varias condiciones es mejor usar una estructura switch

Podemos crea rangos usando ..< y … dependiendo de cual usemos el ultimo numero podría excluirse

//y bueno ese fue le día 3

Referencias

https://www.hackingwithswift.com/100/3

https://www.hackingwithswift.com/100

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *