Temos muitos estilos de codificação ou especificações de codificação. Mas muitas vezes esse item pode ser esquecido por nós, ou seja, costumamos usar parâmetros bool nos parâmetros de função, o que reduzirá bastante a legibilidade do código. Não acredite? Vejamos primeiro o código abaixo.
Ao ler o código a seguir, o que você acha que esse código significa?
widget->repaint(false); Deseja repintar? Ou significa outra coisa?
Após a leitura do documento, aprendemos que este parâmetro é imediato, ou seja, falso significa não redesenhar imediatamente, e verdadeiro significa que o código será redesenhado imediatamente.
Também existe essa função na API do Windows: InvalidateRect Quando você vê o código a seguir, o que você acha que significa?
InvalidateRect(hwnd, lpRect, false); Não vamos falar sobre o quão ruim é o nome da função InvalidateRect. Vamos falar primeiro sobre o parâmetro false? invalidar significa "invalidar XXX", o que significa falso? Duplo negativo? Isso significa afirmativamente?
Se você vir um código como este, será bastante confuso. Então, você tem que olhar a documentação ou a definição da função InvalidateRect. Você verá que o parâmetro é BOOL bErase, que significa: "Se você deseja redesenhar o plano de fundo."
Existem muitas coisas assim. Olhando para o código a seguir, quero substituir "%USER%" em str pelo nome de usuário real:
str.replace("%USER%", usuário, false); // Qt 3TNND, o que significa falso? Não está substituindo? Ou significa outra coisa?
Depois de ler a documentação, descobri que false significa: "substituição sem distinção entre maiúsculas e minúsculas".
Na verdade, se você usar variáveis/constantes enum em vez de variáveis bool, você tornará seu código mais legível, como: