0Pricing
Swift Academy · Lección

Tipos por valor e inmutabilidad

Descubra cómo let impide modificar los tipos por valor.

Tipos por valor e inmutabilidad es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Los structs son tipos por valor

En Swift, struct y enum son tipos por valor. Al asignar uno a una variable nueva, se crea una copia.

struct Point { var x: Int; var y: Int }
var a = Point(x: 1, y: 2)
var copy = a
copy.x = 99
print(a.x, copy.x)

let bloquea todo el valor

Declarar un struct con let hace que todo el valor sea inmutable, incluidas todas sus propiedades.

struct Counter { var value: Int }
let c = Counter(value: 0)
// c.value = 5 // compile error
print(c.value)

var permite la mutación

Use var cuando tenga previsto cambiar las propiedades de un struct después de crearlo.

struct Counter { var value: Int }
var c = Counter(value: 0)
c.value = 5
print(c.value)

Copia al asignar

Cada variable contiene su propia copia independiente. Cambiar una nunca afecta a la otra.

struct Box { var label: String }
var first = Box(label: "A")
var second = first
second.label = "B"
print(first.label, second.label)

Semántica de valor en funciones

Pasar un struct a una función pasa una copia. El original fuera de la función no cambia.

struct Score { var points: Int }
func bump(_ s: Score) {
    var local = s
    local.points += 10
}
var s = Score(points: 0)
bump(s)
print(s.points)

Propiedades inmutables

Una propiedad declarada con let dentro de un struct nunca puede cambiar, ni siquiera en una instancia var.

struct User { let id: Int; var name: String }
var u = User(id: 1, name: "Ada")
u.name = "Bob"
// u.id = 2 // compile error
print(u.id, u.name)

Los arrays también son tipos por valor

Los Array, Dictionary y Set de Swift son structs, por lo que se copian al asignarlos.

var a = [1, 2, 3]
var b = a
b.append(4)
print(a)
print(b)

Los strings son tipos por valor

String también es un tipo por valor. Mutar una copia no modifica el original.

var s1 = "hi"
var s2 = s1
s2 += " there"
print(s1)
print(s2)

Por qué ayudan los tipos por valor

La semántica de valor evita errores causados por compartir el estado accidentalmente. Puede razonar sobre un valor de forma local sin preocuparse por quién más conserva una referencia.

struct Config { var retries: Int }
let defaultConfig = Config(retries: 3)
var custom = defaultConfig
custom.retries = 5
print(defaultConfig.retries, custom.retries)

Inmutabilidad y seguridad

Marcar los valores con let siempre que sea posible hace que el código sea más seguro y claro. El compilador garantiza que nunca cambien.

let limit = 100
let name = "stable"
print(limit, name)

Reasignar una variable let falla

No puede reasignar una vinculación let ni mutar el valor que contiene.

let pi = 3.14
// pi = 3.15 // compile error
print(pi)

Comprobación rápida

Pruebe el comportamiento de los tipos por valor.

Resumen

Los structs y enums son tipos por valor: se copian al asignarlos y al pasarlos a funciones. Una vinculación let bloquea todo el valor, y una propiedad let nunca puede cambiar. Esto proporciona un estado predecible y aislado.

struct P { var n: Int }
var a = P(n: 1)
var b = a
b.n = 9
print(a.n, b.n)

Preguntas frecuentes

¿La lección «Tipos por valor e inmutabilidad» es gratis?

Sí — el texto completo de «Tipos por valor e inmutabilidad» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Tipos por valor e inmutabilidad»?

Descubra cómo let impide modificar los tipos por valor. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Tipos por valor e inmutabilidad»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Tipos por valor e inmutabilidad
  2. La palabra clave mutating
  3. mutating y reasignación de self
  4. Alternativas sin mutación
← Volver a Swift Academy