Menu
Coddy logo textTech

Funzioni anonime

Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 44 di 65.

Finora hai creato funzioni con nomi come calculateTotal o printMessage. Ma a volte ti serve una semplice funzione per un'unica attività specifica e darle un nome sembra superfluo. È qui che le funzioni anonime tornano utili.

Una funzione anonima è una funzione senza nome. La definisci proprio dove ti serve, rendendo il codice più conciso per operazioni brevi e da eseguire una sola volta. La sintassi è semplice: basta scrivere l’elenco dei parametri seguito dal corpo della funzione:

(parameter) {
  // corpo della funzione
}

Le funzioni anonime sono particolarmente utili con i metodi delle liste. Per esempio, invece di creare una funzione con nome separata per stampare ogni elemento di una lista, puoi usare direttamente una funzione anonima con il metodo forEach:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Questo approccio mantiene il tuo codice pulito e conciso, soprattutto quando la logica della funzione è semplice e non verrà riutilizzata altrove nel programma.

challenge icon

Sfida

Facile

Crea un programma che elabori un elenco di nomi di dipendenti usando funzioni anonime. Il tuo programma mostrerà come usare funzioni anonime con il metodo forEach per eseguire diverse operazioni su ciascun elemento dell’elenco.

  1. Leggi una stringa di input contenente nomi di dipendenti separati da virgole (ad es., "Alice,Bob,Charlie,Diana")
  2. Suddividi la stringa di input in un elenco di singoli nomi usando il metodo split()
  3. Usa il metodo forEach con una funzione anonima per stampare il nome di ciascun dipendente con un messaggio di benvenuto
  4. Usa il metodo forEach con un’altra funzione anonima per stampare il nome di ciascun dipendente in maiuscolo
  5. Usa il metodo forEach con una terza funzione anonima per stampare il nome di ciascun dipendente insieme al conteggio dei suoi caratteri

Ad esempio, se l’input è "Alice,Bob,Charlie", il programma dovrebbe produrre:

Processing employee list: Alice,Bob,Charlie
===========================================
Welcome Messages:
Welcome to the team, Alice!
Welcome to the team, Bob!
Welcome to the team, Charlie!
===========================================
Names in Uppercase:
ALICE
BOB
CHARLIE
===========================================
Name Lengths:
Alice has 5 characters
Bob has 3 characters
Charlie has 7 characters

Se l’input è "John,Sarah", il programma dovrebbe produrre:

Processing employee list: John,Sarah
===========================================
Welcome Messages:
Welcome to the team, John!
Welcome to the team, Sarah!
===========================================
Names in Uppercase:
JOHN
SARAH
===========================================
Name Lengths:
John has 4 characters
Sarah has 5 characters

Il programma deve usare tre chiamate separate al metodo forEach, ciascuna con una propria funzione anonima. Le funzioni anonime devono essere definite inline, senza assegnare loro un nome. Ogni funzione anonima deve accettare un singolo parametro che rappresenta il nome del dipendente corrente ed eseguire l’operazione specificata. Usa l’interpolazione di stringhe per formattare i messaggi di output esattamente come mostrato sopra.

Provalo tu

import 'dart:io';

void main() {
  // Leggi la stringa di input contenente i nomi dei dipendenti
  String? input = stdin.readLineSync();
  
  // Dividi l'input in una lista di nomi
  List<String> employeeNames = input!.split(',');
  
  // Stampa il messaggio iniziale di elaborazione
  print('Processing employee list: $input');
  print('===========================================');
  
  // TODO: Scrivi il tuo codice qui sotto
  // Usa forEach con funzioni anonime per:
  // 1. Stampare messaggi di benvenuto
  // 2. Stampare i nomi in maiuscolo  
  // 3. Stampare la lunghezza dei nomi
  
}
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 Logica e flusso

Esercitati da solo: Compilatore Dart online