Dart:
Organizzare il codice in funzioni
Come fare:
Funzione di base
In Dart, si definisce una funzione utilizzando la parola chiave void
se questa non restituisce un valore, oppure si specifica il tipo di valore che restituisce altrimenti. Ecco una semplice funzione che stampa un messaggio di saluto:
void greet(String name) {
print('Ciao, $name!');
}
void main() {
greet('Alice'); // Output: Ciao, Alice!
}
Restituire un Valore
Le funzioni possono restituire valori. L’esempio seguente prende due interi come input e restituisce la loro somma:
int add(int a, int b) {
return a + b;
}
void main() {
var sum = add(5, 3);
print(sum); // Output: 8
}
Funzioni Anonime
Dart supporta le funzioni anonime (note anche come espressioni lambda o closures), utili per funzionalità rapide e immediate. Ecco come utilizzare una funzione anonima con il metodo forEach
di un elenco:
void main() {
var fruits = ['mela', 'banana', 'ciliegia'];
fruits.forEach((item) {
print(item);
});
// Output:
// mela
// banana
// ciliegia
}
Sintassi a Freccia per Funzioni a Singola Espressione
Per funzioni che contengono una sola espressione, Dart offre una sintassi concisa usando la notazione “a freccia” (=>
). Questo è particolarmente utile per funzioni brevi o per passare funzioni come argomenti:
int square(int num) => num * num;
void main() {
print(square(4)); // Output: 16
}
Utilizzare Librerie di Terze Parti
Per funzionalità più complesse o specializzate, gli sviluppatori Dart si affidano spesso a librerie di terze parti. Prendi in considerazione la libreria http
per effettuare richieste HTTP. Prima, aggiungi http
al tuo file pubspec.yaml sotto le dipendenze:
dependencies:
http: ^0.13.3
Poi, puoi utilizzarla per recuperare dati dal web:
import 'package:http/http.dart' as http;
Future<void> fetchUserData() async {
var response = await http.get(Uri.parse('https://api.example.com/users/1'));
print(response.body);
}
void main() {
fetchUserData();
// Risultato atteso: Dati JSON dell'utente. Il risultato effettivo dipenderà dalla risposta dell'API.
}
Ricorda, quando organizzi il tuo codice Dart in funzioni, pensa alla riutilizzabilità, chiarezza e al principio di singola responsabilità. Questo non solo rende il tuo codice più pulito, ma anche più facile per altri (e per il te del futuro) da comprendere e mantenere.