Etichette degli argomenti
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 54 di 86.
Swift ti permette di controllare come vengono lette le chiamate alle funzioni usando le etichette degli argomenti. Un’etichetta dell’argomento è ciò che usi quando chiami la funzione, mentre il nome del parametro è ciò che usi all’interno del corpo della funzione.
Puoi specificarli entrambi scrivendo l'etichetta dell'argomento prima del nome del parametro:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // Output: Hello, Alice!Qui, to è l'etichetta dell'argomento (usata quando si chiama la funzione) e name è il nome del parametro (usato all'interno della funzione). In questo modo, la chiamata risulta più naturale: "greet to Alice."
A volte vuoi omettere del tutto l'etichetta per rendere le chiamate più pulite. Usa un trattino basso (_) come etichetta dell'argomento:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // Risultato: 25Senza il trattino basso, dovresti scrivere square(number: 5). Il trattino basso elimina questo requisito, rendendo la chiamata più semplice quando il nome della funzione ne chiarisce già lo scopo.
Sfida
FacileCrea due funzioni che dimostrino diverse tecniche per le etichette degli argomenti:
Funzione 1: send
- Usa l’etichetta dell’argomento
messagecon il nome del parametrotext(tipoString) - Usa l’etichetta dell’argomento
tocon il nome del parametrorecipient(tipoString) - Restituisci una stringa nel formato:
"Sending '[text]' to [recipient]"
Funzione 2: double
- Usa un trattino basso
_per omettere l’etichetta dell’argomento - Nome del parametro
number(tipoInt) - Restituisci il numero moltiplicato per 2
Dopo aver definito entrambe le funzioni, leggi dall’input due stringhe e un intero, quindi chiama entrambe le funzioni e stampa i risultati su righe separate.
Riceverai i seguenti input:
- Prima riga: il testo del messaggio (ad es.,
"Hello") - Seconda riga: il nome del destinatario (ad es.,
"Alice") - Terza riga: un numero da raddoppiare (ad es.,
"7")
Ad esempio, se gli input sono "Hello", "Alice" e "7", l’output dovrebbe essere:
Sending 'Hello' to Alice
14Provalo tu
// Leggi l'input
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: Scrivi il tuo codice qui sotto
// Definisci la funzione 'send' con le etichette degli argomenti 'message' e 'to'
// Definisci la funzione 'double' omettendo l'etichetta dell'argomento tramite '_'
// Chiama entrambe le funzioni e stampa i risultatiQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori – Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaRiepilogo - Matematica sempliceOperatori di confronto7I/O di base
Funzione printInterpolazione di stringheInput con ReadLineConversione di tipoRipasso - Fino a 120Ripasso - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori restituitiEtichette degli argomentiRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti13Iterare sulle sequenze
Iterare sugli elementiIl metodo enumerateIterare sulle stringhe P1Iterare sulle stringhe P22Variabili
Let vs VarAnnotazioni di tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatore ternario8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz3Valori opzionali
Cosa sono i valori opzionaliEstrazione del valore con if letGuard letOperatore di coalescenza nilRiepilogo - Estrazione sicura del valore6Decisioni
Istruzione ifIf - ElseRipasso - Calcolatrice sempliceIstruzione switchSwitch con intervalli9Cicli
Ciclo for-inCiclo whileCiclo repeat-whileBreakContinueRipasso - FattorialeIntervalli nei cicliCiclo annidatoRipasso - Input dinamicoEsercitati da solo: Playground Swift