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:

tipus_de_retorn nom_de_la_funció(paràmetres) {
  // cos de la funció
}

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ó, i int a, int b só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.

void saludar() {
  print('Hola, món!');
}

void main() {
  saludar(); // Sortida: Hola, món!
}

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 anomenada Persona.
  • 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

Mòdul 2: Conceptes Bàsics de Programació en Dart

Mòdul 3: Widgets de Flutter

Mòdul 4: Gestió de l'Estat

Mòdul 5: Navegació i Enrutament

Mòdul 6: Xarxes i APIs

Mòdul 7: Persistència i Emmagatzematge

Mòdul 8: Conceptes Avançats de Flutter

Mòdul 9: Proves i Depuració

Mòdul 10: Desplegament i Manteniment

Mòdul 11: Flutter per a Web i Escriptori

© Copyright 2024. Tots els drets reservats