no-op句を使用すると、コードが読みやすくなる場合があります。
それは意見の問題かもしれませんが、ここに例があります。2つのUNIXパスを使用して機能する関数を作成したとします。あるパスから別のパスにcdするために必要な「パスの変更」を計算します。パスは両方とも「/」で始まる必要がある、または両方がそうではないという制限を関数に設定します。
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
true # continue with function
else
return 1 # Skip function.
fi
一部の開発者はno-opを削除したいと思うでしょうが、それは条件付きを否定することを意味します:
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
さて、私の意見では、if節からは、関数の実行をスキップしたい条件はそれほど明確ではありません。no-opを排除して明確に行うには、if句を関数の外に移動します。
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
見た目は良くなりますが、多くの場合、これを行うことはできません。関数内でチェックを実行する必要があります。
では、これはどのくらいの頻度で発生しますか?あまり頻繁ではありません。たぶん年に1、2回。それは十分に頻繁に起こるので、あなたはそれを知っているべきです。(言語に関係なく)コードの可読性が向上すると思うときは、それを使用することを躊躇しません。