Tracce
/
Swift
Swift
/
Programma
/
Parametri inout
Pa

Parametri inout in Swift

1 esercizio

Informazioni su Parametri inout

All'interno del corpo di una funzione, i parametri sono trattati come costanti, non come variabili; provare a modificare il valore di un parametro genera un errore in fase di compilazione. Se una funzione vuole modificare il valore di un parametro, deve usare un parametro in-out per rendere esplicita questa mutabilità.

Per usare i parametri in-out, chi programma deve essere sicuro di tre cose:

  1. La definizione della funzione deve contrassegnare esplicitamente i parametri in-out scrivendo la parola chiave inout tra : e il nome del tipo nell'annotazione di tipo del parametro.
  2. Il valore passato al parametro in-out deve essere dichiarato come variabile, non come costante. Allo stesso modo, non può essere un letterale.
  3. Il nome della variabile deve essere preceduto dal simbolo & nella chiamata alla funzione, segnalando esplicitamente che è modificabile.

Quando si fa questo, la funzione crea una copia interna del parametro in-out, la modifica come indicato nel corpo della funzione e, quando la funzione restituisce, copia il valore modificato nella variabile che è stata passata.

func updateVersion(_ record: inout (version: Int, title: String)) {
  record.version += 1
}

var dbRecord = (version: 2, title: "Exercism")
updateVersion(&dbRecord)

// dbRecord is now (3, "Exercism")
Ci sono un paio di regole aggiuntive da tenere presenti sui parametri in-out.

1. All'interno di una funzione con parametri in-out, non puoi fare riferimento alla variabile che è stata passata come parametro in-out.
2. La stessa variabile non può essere passata come più parametri in-out nella stessa funzione.
   Ad esempio, `inoutFunc(&mutVar, &mutVar)` genera un errore di compilazione.
Modifica tramite GitHub Il collegamento si apre in una nuova finestra o scheda

Impara Parametri inout