Menu
Coddy logo textTech

Parametri posizionali opzionali

Fa parte della sezione Fondamenti del percorso Dart di Coddy. Lezione 72 di 94.

I parametri posizionali facoltativi in Dart ti permettono di creare funzioni in cui alcuni parametri sono facoltativi. Li definisci inserendo i parametri tra parentesi quadre [].

Crea una funzione con parametri posizionali facoltativi:

void greet(String name, [String? greeting]) {
  if (greeting != null) {
    print('$greeting, $name!');
  } else {
    print('Hello, $name!');
  }
}

void main() {
  greet('Dart');
  greet('Dart', 'Welcome');
}

Dopo aver eseguito il codice qui sopra, l'output sarà:

Hello, Dart!
Welcome, Dart!

Puoi avere più parametri facoltativi:

int calculateTotal(int quantity, [int price = 10, int tax = 2]) {
  return quantity * price + tax;
}

void main() {
  print(calculateTotal(5));
  print(calculateTotal(5, 20));
  print(calculateTotal(5, 20, 5));
}

Dopo aver eseguito il codice precedente, l'output sarà:

52
102
105
challenge icon

Sfida

Principiante

In questa sfida, ti eserciterai a usare i parametri posizionali opzionali nelle funzioni Dart. I parametri posizionali opzionali ti permettono di creare funzioni in cui alcuni parametri sono facoltativi.

Completa la funzione greet qui sotto, che accetta un parametro name obbligatorio e un parametro title facoltativo. Se viene fornito title, la funzione dovrebbe restituire un saluto con entrambi title e name. Se non viene fornito title, dovrebbe usare solo name.

Output previsto:

Hello, John!
Hello, Dr. Smith!

Provalo tu

void main() {
  // Queste variabili sono già definite per te
  String person1 = "John";
  String person2 = "Smith";
  String title = "Dr.";
  
  // Chiama la funzione greet passando solo name
  print(greet(person1));
  
  // Chiama la funzione greet passando sia name sia title
  print(greet(person2, title));
}

// TODO: Completa la funzione greet con un parametro title opzionale
// Il parametro title deve essere opzionale (usa le parentesi quadre [])
String greet(String name) {
  // Se title è specificato, restituisci "Hello, {title} {name}!"
  // Se title non è specificato, restituisci "Hello, {name}!"
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Dart online