0Pricing
Mojo Academy · Lezione

Mutare sul posto con inout

Permetta a una funzione di modificare il valore del chiamante.

Mutare sul posto con inout è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 2 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.

A volte è necessario modificarlo

Il prestito consente solo di leggere. A volte, però, una funzione deve davvero modificare il valore del chiamante, ad esempio incrementando un contatore. ✏️

Ecco inout

La convenzione inout dà alla funzione accesso mutabile. Le modifiche apportate al suo interno si riflettono nella variabile del chiamante.

Dentro e fuori

Il nome dice tutto: il valore entra, Lei lo modifica e il valore aggiornato torna al chiamante. Non viene restituita alcuna copia.

Contrassegnare un parametro

Scriva inout prima del nome del parametro. Ora le assegnazioni all'interno della funzione aggiornano direttamente la variabile originale.

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

Chiamarlo

Passi una variabile e osservi come cambia dopo la chiamata. La funzione ha modificato il valore del chiamante sul posto, senza bisogno di un valore restituito.

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

Deve essere modificabile

L'argomento passato a un parametro inout deve essere un var modificabile. Non può passargli un valore letterale fisso o un valore preso in prestito.

Esclusivo durante il prestito

Finché una funzione mantiene un riferimento inout, nient'altro può accedere a quel valore. Questa regola di esclusività impedisce modifiche in conflitto.

Nessuna copia nascosta

Come il prestito, inout funziona tramite riferimento, quindi non viene creata alcuna copia completa. Può modificare il valore senza pagare il costo della duplicazione.

Il chiamante ne mantiene la proprietà

Con inout il chiamante mantiene la proprietà. La funzione prende in prestito il valore in modo modificabile solo per la durata della chiamata, poi restituisce il controllo.

Quando scegliere inout

Utilizzi inout quando l'unico scopo di una funzione è aggiornare un valore che il chiamante continuerà a usare, ad esempio per espandere un buffer o reimpostare un campo.

Lettura e modifica a confronto

Finora: borrowed significa sola lettura, inout significa lettura e scrittura. Scegliere quello giusto indica con precisione ai lettori cosa fa una funzione.

Verifica rapida

Verifichiamo che cosa consente inout.

Riepilogo

inout consente a una funzione di modificare sul posto il valore del chiamante, tramite riferimento e senza copie. Il chiamante ne mantiene la proprietà per tutto il tempo. 🎯

Domande Frequenti

La lezione «Mutare sul posto con inout» è gratuita?

Sì — il testo completo di «Mutare sul posto con inout» è 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 «Mutare sul posto con inout»?

Permetta a una funzione di modificare il valore del chiamante. 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 2 di 4.

Quanto tempo richiede la lezione «Mutare sul posto con inout»?

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

  1. Prendere in prestito argomenti in sola lettura
  2. Mutare sul posto con inout
  3. Prendere ownership con owned
  4. L'operatore di trasferimento
← Torna a Mojo Academy