Annotaties

Annotaties

> LeekScript

Momenteel bestaan er 7 annotaties. Ze kunnen vóór een functie of methode worden gebruikt om extra informatie aan te geven. Ze zijn ook van toepassing op lokale variabelen, globale variabelen en klassen. In de editor verschijnt de documentatie van elke annotatie wanneer je erover zweeft.

Hoe gebruik je annotaties?

Om een annotatie te gebruiken, kun je schrijven:

of

Annotaties kunnen ook worden gecombineerd:

De bestaande annotaties

@deprecated

Een functie of methode met de annotatie @deprecated toont een waarschuwing bij het compileren wanneer ze wordt aangeroepen. Dit geeft aan dat de functie niet meer gebruikt mag worden en later zal worden verwijderd.

Bijvoorbeeld:

@todo

Een functie of methode met de annotatie @todo voegt bij het compileren een waarschuwing van het type todo in, om aan te geven dat ze niet volledig is.

@unused

Een functie of methode met de annotatie @unused geeft geen waarschuwing als ze niet wordt gebruikt. Dit is vooral nuttig in de strikte modus als de functie geïmplementeerd is maar de code ze niet aanroept.

Bijvoorbeeld:

Merk op: een naam laten voorafgaan door _ (bijvoorbeeld var _resultat) onderdrukt de waarschuwing "ongebruikt" al, zonder annotatie.

@nodiscard

Een functie of methode met de annotatie @nodiscard toont een waarschuwing als haar retourwaarde niet wordt gebruikt.

@pure

Momenteel heeft @pure hetzelfde effect als @nodiscard. @pure houdt echter meer in:

Een pure functie mag de toestand niet wijzigen en mag geen neveneffecten hebben. Dat wil zeggen dat ze geen variabelen buiten haar scope mag wijzigen en deterministisch moet zijn (geen random).

@override

Een methode met de annotatie @override geeft de ontwikkelaar aan dat ze de implementatie van een methode van de ouderklasse wijzigt.

Bijvoorbeeld:

@tailrec

Een functie of methode met de annotatie @tailrec geeft aan dat ze staartrecursief is: dat betekent dat de functie recursief is en dat de recursieve aanroep de laatste instructie van de functie is.

Deze annotatie kan nuttig zijn voor de compiler, maar wordt momenteel nooit gebruikt.