Nous avons de nombreux styles de codage ou spécifications de codage. Mais nous pouvons souvent oublier cet élément, c'est-à-dire que nous utilisons souvent des paramètres booléens dans les paramètres de fonction, ce qui réduira considérablement la lisibilité du code. Vous n'y croyez pas ? Examinons d'abord le code ci-dessous.
Lorsque vous lisez le code suivant, que pensez-vous que ce code signifie ?
widget->repaint(false); Voulez-vous repeindre ? Ou est-ce que cela signifie autre chose ?
Après lecture du document, nous avons appris que ce paramètre est immédiat, c'est-à-dire que false signifie ne pas redessiner immédiatement, et true signifie que le code sera redessiné immédiatement.
Il existe également une telle fonction dans l'API Windows : InvalidateRect. Lorsque vous voyez le code suivant, que pensez-vous que cela signifie ?
InvalidateRect(hwnd, lpRect, false); Ne parlons pas de la mauvaise qualité du nom de la fonction InvalidateRect. Parlons d'abord du paramètre false ? invalidate signifie "invalider XXX", que signifie false ? Double négatif ? Est-ce que cela veut dire affirmativement ?
Si vous voyez un code comme celui-ci, ce sera assez déroutant. Il faut donc regarder la documentation ou la définition de la fonction d'InvalidateRect. Vous verrez que le paramètre est BOOL bErase, ce qui signifie : "Si vous souhaitez redessiner l'arrière-plan."
Il existe de nombreuses choses de ce type. En regardant le code suivant, je souhaite remplacer "%USER%" dans str par le vrai nom d'utilisateur :
str.replace("%USER%", user, false); // Qt 3TNND, que signifie false ? Vous ne le remplacez pas ? Ou est-ce que cela signifie autre chose ?
J'ai découvert après avoir lu la documentation que false signifiait : "remplacement insensible à la casse".
En fait, si vous utilisez des variables/constantes enum au lieu de variables booléennes, vous rendrez votre code plus lisible, comme :