Às vezes, cláusulas não operacionais podem tornar seu código mais legível.
Isso pode ser uma questão de opinião, mas aqui está um exemplo. Vamos supor que você criou uma função que funciona seguindo dois caminhos unix. Ele calcula o 'caminho de mudança' necessário para cd de um caminho para outro. Você coloca uma restrição em sua função de que os caminhos devem começar com '/' OU os dois não.
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
Alguns desenvolvedores desejam remover o no-op, mas isso significaria negar o condicional:
function chgpath() {
# toC, fromC are the first characters of the argument paths.
if [[ "$toC" != / || "$fromC" == / ]] && [[ "$toC" == / || "$fromC" != / ]]
then
return 1 # Skip function.
fi
Agora - na minha opinião - não está tão claro na cláusula se as condições nas quais você deseja pular a função. Para eliminar o no-op e fazê-lo claramente, convém mover a cláusula if da função:
if [[ "$toC" == / && "$fromC" == / ]] || [[ "$toC" != / && "$fromC" != / ]]
then
cdPath=$(chgPath pathA pathB) # (we moved the conditional outside)
Parece melhor, mas muitas vezes não podemos fazer isso; queremos que a verificação seja feita dentro da função.
Então, quantas vezes isso acontece? Não muito frequentemente. Talvez uma ou duas vezes por ano. Isso acontece com bastante frequência, para que você esteja ciente disso. Não evito usá-lo quando acho que melhora a legibilidade do meu código (independentemente do idioma).