Un primo sguardo alla mutazione
Modifichi i dati senza compromettere altro codice.
Un primo sguardo alla mutazione è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.
Modificare i dati intenzionalmente
Le copie indipendenti sono utili, ma i programmi reali devono modificare i dati: aggiornare un punteggio o far crescere una lista. Vediamo come farlo in sicurezza. ✏️
Modificare il proprio var
La modifica più semplice consiste nel riassegnare un var che possiede. Poiché è una sua copia, la modifica influisce solo sul suo valore.
var score = 10
score = score + 5La modifica locale non ha effetti collaterali
Modificare una variabile locale non può propagarsi all'esterno. Le altre variabili mantengono i propri valori, quindi la modifica non produce effetti collaterali indesiderati.
var a = 1
var b = a
a = 100Le funzioni ricevono copie per impostazione predefinita
Quando si passa un valore a una funzione, questa modifica una copia. L'originale all'esterno della funzione rimane invariato.
fn bump(n: Int) -> Int:
return n + 1Ma a volte si desidera una modifica reale
E se una funzione dovesse aggiornare direttamente il valore del chiamante? Mojo consente di scegliere questo comportamento con la convenzione inout.
inout significa modificare direttamente
Contrassegnando un argomento come inout, la funzione opera sul valore effettivo del chiamante, quindi le modifiche vengono realmente mantenute.
fn double(inout n: Int):
n = n * 2La mutazione è esplicita, non accidentale
Si noti che è stato necessario scrivere intenzionalmente inout. Mojo non modifica mai il valore del chiamante di nascosto: è sempre necessario scegliere esplicitamente questa opzione.
La firma fornisce già l'informazione
La firma della funzione rende chiara l'intenzione. Se vede inout, sa che il valore potrebbe cambiare; altrimenti deve aspettarsi una copia sicura.
Chiamare una funzione inout
La chiami con la propria var e osservi il valore aggiornarsi direttamente nel punto in cui si trova. La funzione ha raggiunto l'originale intenzionalmente.
var n = 4
double(n)
print(n)Un approccio equilibrato
Mojo unisce entrambi gli approcci: copie sicure per impostazione predefinita e mutazione intenzionale quando la si richiede. In questo modo offre sicurezza e flessibilità.
Cosa viene dopo
Questa è solo una prima introduzione. Più avanti incontrerà owned e l'operatore di trasferimento, per avere il pieno controllo sul modo in cui i dati vengono spostati. 🚀
Verifica rapida
Desidera che una funzione modifichi il valore effettivo del chiamante, non una copia. Cosa deve usare?
Riepilogo
Modificare la propria var è sicuro e circoscritto. Per modificare il valore del chiamante, scelga esplicitamente inout: nulla viene modificato accidentalmente. 🎯
Impara Mojo con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Un primo sguardo alla mutazione» è gratuita?
Sì — il testo completo di «Un primo sguardo alla mutazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.
Cosa imparerò in «Un primo sguardo alla mutazione»?
Modifichi i dati senza compromettere altro codice. Eserciti Mojo Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Mojo Academy?
Non è richiesta alcuna esperienza precedente. Mojo Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Un primo sguardo alla mutazione»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Mojo Academy?
Sì. Ogni lezione Mojo Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Che cosa significa semantica del valore
- Copie e stato condiviso
- Il comportamento sicuro predefinito di Mojo
- Un primo sguardo alla mutazione