0Pricing
Mojo Academy · Lección

Mutar en el sitio con inout

Permita que una función cambie el valor de quien la llama.

Mutar en el sitio con inout es una lección gratuita de Mojo Academy en CoddyKit. Esta es la lección 2 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 Mojo Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Mojo Academy incluye 4 lecciones en total.

A veces debe cambiarlo

El préstamo solo permite leer. Pero a veces una función necesita realmente modificar el valor del llamador, por ejemplo, para incrementar un contador. ✏️

Conozca inout

La convención inout proporciona a una función acceso mutable. Los cambios que realice dentro se reflejan en la variable del llamador.

Entrada y salida

El nombre lo dice todo: el valor entra, usted lo cambia y el valor actualizado vuelve a salir hacia el llamador. No se devuelve ninguna copia.

Marcar un parámetro

Escriba inout antes del nombre del parámetro. Así, las asignaciones realizadas dentro de la función actualizan directamente la variable original.

fn increment(inout n: Int):
    n += 1

Cómo llamarlo

Pase una variable y observe cómo cambia después de la llamada. La función editó el valor del llamador en el mismo lugar, sin necesidad de devolverlo.

var count = 5
increment(count)
print(count)  # 6

Debe ser mutable

El argumento que pase a un parámetro inout debe ser un var mutable. No puede pasarle un literal constante ni un valor prestado.

Exclusivo mientras está prestado

Mientras una función mantiene una referencia inout, nada más puede acceder a ese valor. Esta regla de exclusividad evita ediciones incompatibles.

Sin copias ocultas

Al igual que el préstamo, inout funciona mediante una referencia, por lo que no hay una copia completa. Puede mutar el valor sin pagar el coste de duplicarlo.

El llamador sigue siendo el propietario

Con inout, el llamador conserva la propiedad. La función solo toma prestado el valor de forma mutable durante la llamada y después devuelve el control.

Cuándo elegir inout

Use inout cuando el propósito principal de una función sea actualizar un valor que el llamador seguirá utilizando, como ampliar un búfer o restablecer un campo.

Leer frente a mutar, lado a lado

Hasta ahora: borrowed significa solo lectura, mientras que inout significa leer y escribir. Elegir la opción adecuada indica exactamente a los lectores qué hace una función.

Comprobación rápida

Vamos a comprobar qué permite inout.

Repaso

inout permite que una función mute el valor del llamador directamente, mediante una referencia y sin copias. El llamador sigue siendo su propietario durante todo el tiempo. 🎯

Preguntas frecuentes

¿La lección «Mutar en el sitio con inout» es gratis?

Sí — el texto completo de «Mutar en el sitio con inout» 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 Mojo Academy, actualiza a CoddyKit PRO. El curso de Mojo Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Mutar en el sitio con inout»?

Permita que una función cambie el valor de quien la llama. Practicas Mojo 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 Mojo Academy?

No se requiere experiencia previa. Mojo 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 2 de 4.

¿Cuánto tiempo toma la lección «Mutar en el sitio con inout»?

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 Mojo Academy?

Sí. Cada lección de Mojo 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. Tomar argumentos prestados en modo de solo lectura
  2. Mutar en el sitio con inout
  3. Tomar la propiedad con owned
  4. El operador de transferencia
← Volver a Mojo Academy