Je ne connais pas Flutter, mais à priori il existe une différence entre les deux fonctions.
La première a forcément besoin que le code appelant lui fournisse une valeur booléenne. Alors que la seconde peut fonctionner sans paramètre, grâce à la valeur par défaut. Cela permet d’alléger le code, et de rendre le programme plus lisible.
Si j’ai bien compris, il s’agit, lorsque tu mets. le signe égal, de fournir une valeur par défaut à un paramètre optionnel qui, bien qu’il soit optionnel, ne peut être null, alors que lorsque tu mets les deux points, tu fixes une valeur qui n’est pas par défaut, comme dans l’exemple suivant :
/// Sets the [bold] and [hidden] flags …
void enableFlags({bool bold = false, bool hidden = false}) {…}
// sans valeur par défaut ainsi imposée, null aurait été la valeur par défaut.
// bold will be true; hidden will be false.
enableFlags(bold: true);
Suivant la documentation de Dart (lien ci-dessous).
Les : servent à donner le nom du paramètre lors de l’appel de la fonction.
NomDuParametre: valeur .
Et le = est bien pour assigner une valeur par défaut.
Donc, pour répondre à ta question avec le =, tu n’as pas besoin de donner de valeur, si la valeur par défaut te va. Alors, qu’avec les : tu es obligé de donner une valeur à chaque appel de fonction.
Ah d’accord, je comprend mieux ! J’avais jamais eu d’erreur de ce type jusqu’a maintenant donc je comprenais pas ce qu’il pouvait mal se passer.
Merci pour vos réponse @ThonyF & @fjacquemin, j’ai bien compris la différence et c’est bon à savoir !