Sobes.tech
Junior

Wat is het verschil tussen anonieme functies en gewone functies?

sobes.tech AI

Antwoord van AI

Anonieme functies zijn functies zonder naam. Ze worden vaak gebruikt voor eenmalige oproepen of als callbacks.

Belangrijkste verschillen:

  • Naam: Normale functies hebben een naam en kunnen ernaar worden opgeroepen. Anonieme functies hebben geen naam.
  • Definitie: Normale functies worden gedefinieerd met het sleutelwoord func (of equivalent in andere talen) en een naam, gevolgd door parameters en lichaam. Anonieme functies worden "ter plekke" gedefinieerd, vaak op de plek waar ze worden gebruikt.
  • Overdracht: Anonieme functies worden vaak als argumenten doorgegeven aan andere functies (bijvoorbeeld in methoden map, where, forEach). Normale functies kunnen ook worden doorgegeven, maar worden vaker gebruikt om logica te definiëren die bij naam wordt opgeroepen.
  • Scope: Anonieme functies hebben toegang tot variabelen uit de scope waarin ze zijn gedefinieerd (effect van "capture" van closure). Normale functies hebben meestal hun eigen scope.

Voorbeeld in Dart/Flutter:

Normale functie:

void greet(String name) {
  print('Hallo, $name!');
}

// Aanroep van normale functie
greet('Wereld');

Anonieme functie (lambda):

// Gebruik van anonieme functie bij iteratie van een lijst
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
  print(number * 2); // Anonieme functie die vermenigvuldigt
});

// Anonieme functie toegewezen aan een variabele
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));