En aquest tema, aprendrem sobre les funcions i els mètodes en Dart, que són fonamentals per estructurar i organitzar el codi de manera eficient. Les funcions i els mètodes ens permeten encapsular blocs de codi que poden ser reutilitzats i cridats des de diferents parts del programa.
Què és una Funció?
Una funció és un bloc de codi que realitza una tasca específica i pot ser cridat des de qualsevol part del programa. Les funcions poden rebre paràmetres i retornar valors.
Definició d'una Funció
La sintaxi bàsica per definir una funció en Dart és la següent:
Exemple de Funció
// Funció que suma dos nombres i retorna el resultat
int sumar(int a, int b) {
return a + b;
}
void main() {
int resultat = sumar(3, 4);
print(resultat); // Sortida: 7
}Explicació
int sumar(int a, int b): Aquesta és la capçalera de la funció.intés el tipus de retorn,sumarés el nom de la funció, iint a, int bsón els paràmetres.return a + b;: Aquesta línia retorna la suma dels dos paràmetres.
Tipus de Funcions
Funcions sense Retorn (void)
Les funcions que no retornen cap valor es defineixen amb el tipus de retorn void.
Funcions amb Paràmetres Opcional
Dart permet definir paràmetres opcionals utilitzant claudàtors [].
void imprimirNom(String nom, [String cognom]) {
if (cognom != null) {
print('$nom $cognom');
} else {
print(nom);
}
}
void main() {
imprimirNom('Joan'); // Sortida: Joan
imprimirNom('Joan', 'Pérez'); // Sortida: Joan Pérez
}Funcions amb Paràmetres Nominals
Els paràmetres nominals es defineixen utilitzant claus {}.
void imprimirNom({String nom, String cognom}) {
print('$nom $cognom');
}
void main() {
imprimirNom(nom: 'Joan', cognom: 'Pérez'); // Sortida: Joan Pérez
}Mètodes
Els mètodes són funcions que estan associades a una classe. Es defineixen dins de la classe i poden accedir als atributs i altres mètodes de la classe.
Definició d'un Mètode
class Persona {
String nom;
int edat;
// Constructor
Persona(this.nom, this.edat);
// Mètode
void saludar() {
print('Hola, em dic $nom i tinc $edat anys.');
}
}
void main() {
Persona persona = Persona('Joan', 30);
persona.saludar(); // Sortida: Hola, em dic Joan i tinc 30 anys.
}Explicació
class Persona: Defineix una classe anomenadaPersona.String nom; int edat;: Atributs de la classe.Persona(this.nom, this.edat);: Constructor de la classe.void saludar() { ... }: Mètode de la classe que imprimeix un missatge de salutació.
Exercicis Pràctics
Exercici 1: Funció de Multiplicació
Escriu una funció anomenada multiplicar que prengui dos nombres com a paràmetres i retorni el seu producte.
int multiplicar(int a, int b) {
return a * b;
}
void main() {
int resultat = multiplicar(3, 4);
print(resultat); // Sortida: 12
}Exercici 2: Mètode de la Classe Cotxe
Defineix una classe Cotxe amb atributs marca i model. Afegeix un mètode descripcio que imprimeixi la marca i el model del cotxe.
class Cotxe {
String marca;
String model;
Cotxe(this.marca, this.model);
void descripcio() {
print('Cotxe: $marca $model');
}
}
void main() {
Cotxe cotxe = Cotxe('Toyota', 'Corolla');
cotxe.descripcio(); // Sortida: Cotxe: Toyota Corolla
}Resum
En aquesta secció, hem après sobre les funcions i els mètodes en Dart. Hem vist com definir funcions amb diferents tipus de paràmetres i com utilitzar mètodes dins de les classes. Les funcions i els mètodes són eines essencials per organitzar el codi i fer-lo més modular i reutilitzable. En el proper tema, explorarem la programació orientada a objectes en Dart amb més detall.
Curs de Desenvolupament Flutter
Mòdul 1: Introducció a Flutter
- Què és Flutter?
- Configuració de l'Entorn de Desenvolupament
- Comprensió de l'Arquitectura de Flutter
- Creació de la Teva Primera Aplicació Flutter
Mòdul 2: Conceptes Bàsics de Programació en Dart
- Introducció a Dart
- Variables i Tipus de Dades
- Sentències de Flux de Control
- Funcions i Mètodes
- Programació Orientada a Objectes en Dart
Mòdul 3: Widgets de Flutter
- Introducció als Widgets
- Widgets Stateless vs Stateful
- Widgets Bàsics
- Widgets de Disseny
- Widgets d'Entrada i Formulari
Mòdul 4: Gestió de l'Estat
Mòdul 5: Navegació i Enrutament
- Introducció a la Navegació
- Navegació Bàsica
- Rutes Nomenades
- Passar Dades Entre Pantalles
- Deep Linking
Mòdul 6: Xarxes i APIs
- Obtenir Dades d'Internet
- Analitzar Dades JSON
- Gestió d'Errors de Xarxa
- Ús d'APIs REST
- Integració de GraphQL
Mòdul 7: Persistència i Emmagatzematge
- Introducció a la Persistència
- Preferències Compartides
- Emmagatzematge de Fitxers
- Base de Dades SQLite
- Ús de Hive per a l'Emmagatzematge Local
Mòdul 8: Conceptes Avançats de Flutter
- Animacions en Flutter
- Pintura Personalitzada i Canvas
- Canals de Plataforma
- Isolates i Concurrència
- Optimització del Rendiment
Mòdul 9: Proves i Depuració
- Introducció a les Proves
- Proves Unitàries
- Proves de Widgets
- Proves d'Integració
- Tècniques de Depuració
Mòdul 10: Desplegament i Manteniment
- Preparació per al Llançament
- Construcció per a iOS
- Construcció per a Android
- Integració i Desplegament Continu (CI/CD)
- Manteniment i Actualització de la Teva Aplicació
