多くのコーディング スタイルまたはコーディング仕様があります。 しかし、この項目は忘れられることがよくあります。つまり、関数パラメーターで bool パラメーターを使用することが多く、コードの可読性が大幅に低下します。 信じられないですか?まずは以下のコードを見てみましょう。
次のコードを読んだとき、このコードは何を意味すると思いますか?
ウィジェット->再ペイント(false); 再ペイントしますか?それとも何か別の意味があるのでしょうか?
ドキュメントを読んだ後、このパラメーターは即時であることがわかりました。つまり、false はすぐに再描画しないことを意味し、true はコードがすぐに再描画されることを意味します。
Windows API にもそのような関数があります: InvalidateRect 次のコードを見たとき、これは何を意味すると思いますか?
InvalidateRect(hwnd, lpRect, false); InvalidateRect の関数名がいかにひどいかについては話さないで、まず false パラメータについて話しましょう。 validate は「XXX を無効にする」という意味ですが、false とはどういう意味ですか? ダブルネガティブ? 肯定的な意味でしょうか?
このようなコードを見ると、非常に混乱するでしょう。 したがって、ドキュメントまたは InvalidateRect の関数定義を参照する必要があります。パラメーターが BOOL bErase であることがわかります。これは、「背景を再描画するかどうか」を意味します。
次のコードを見ると、str の「%USER%」を実際のユーザー名に置き換えたいと考えています。
str.replace("%USER%", user, false); // Qt 3TNND、false とはどういう意味ですか?交換しないのですか?それとも何か別の意味があるのでしょうか?
ドキュメントを読んだ後、 false が「大文字と小文字を区別しない置換」を意味することがわかりました。
実際、bool 変数の代わりに enum 変数/定数を使用すると、次のようにコードが読みやすくなります。