Operadores en Swift: aritmético, comparación, ternario y nil-coalescing

Los operadores básicos son +, -, *, / y %. Swift eliminó ++ y -- en Swift 3. El operador módulo admite negativos y el signo sigue al dividendo:

let a = 17, b = 5
print(a + b)   // 22
print(a - b)   // 12
print(a * b)   // 85
print(a / b)   // 3  (division entera)
print(a % b)   // 2
print(-7 % 3)  // -1 (signo del dividendo)

var n = 0; n += 1  // en lugar de n++

Comparación y lógicos

let x = 5, y = 10
print(x == y)   // false
print(x != y)   // true
print(x < y)    // true
print(x >= 5)   // true

// Ternario
let desc = x < y ? "menor" : "mayor o igual"
print(desc)  // menor

// Logicos
print(true && false)  // false
print(true || false)  // true
print(!true)          // false

Operadores de rango

a...b es el rango cerrado (incluye b) y a..<b el semiabierto (excluye b). Ambos son tipos de primera clase en Swift:

for i in 1...5 { print(i, terminator: " ") }
// 1 2 3 4 5

for i in 0..<5 { print(i, terminator: " ") }
// 0 1 2 3 4

let nombres = ["Ana", "Bob", "Cris", "Dan"]
for n in nombres[2...] { print(n) }
// Cris, Dan

let rango = 1...100
print(rango.contains(50))  // true
print(rango.count)         // 100

Nil-coalescing ??

let entrada: String? = nil
let resultado = entrada ?? "por defecto"
print(resultado)  // por defecto

// Encadenado
let primero: Int? = nil
let segundo: Int? = nil
let valor = primero ?? segundo ?? 0  // 0

Asignación compuesta

var total = 100
total += 50   // 150
total -= 30   // 120
total *= 2    // 240
total /= 3    // 80
total %= 7    // 3

Para operadores bit a bit, overflow (&+, &-) y personalizados consulta el artículo de operadores avanzados de esta misma serie.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP