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
一部の開発者は何もしないことを削除したいと思うでしょうが、それは条件を否定することを意味します:
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回。頻繁に発生するので、注意する必要があります。(言語に関係なく)コードの可読性が向上すると思うときは、私はそれを使うことをためらいません。