[POG] Comparando retorno de operador lógico com booleano
13, maio, 2010
Quer ver uma coisa que me irrita?
Imagina que você tenha uma variável chamada condition e em algum momento um valor booleano é atribuído a ela. Então você vai usar o valor dessa variável em uma lógica condicional, por exemplo um if.
Aí o Pateta me faz isso:
if condition == true # do stuff end
A variável condition já é booleana, não precisa comparar com true! É igual fazer isso:
if (i > 0) == true # do stuff end
Pra que serve essa segunda checagem? Para confirmar, ter certeza mesmo, que a expressão i > 0 realmente retornou true? Se for assim, então por que não testar se é true mais vezes?
if (((i > 0) == true) == true) == true # do stuff end
Que tal fazer um loop e só parar de verificar quando der Stack Overflow?


Já vi coisa pior com o operador ternário:
return (condition ? true : false);
Guilherme, em alguns caso pode ser usual utilizar essa checagem, visto que condition pode ser nil e o retorno não é false.
>> a = nil
=> nil
>> a ? true : false
=> false
>> a ? true : a
=> nil
Abs
Eu ja vi umas bem zuada tipo acho q é pior do q essas paradas que vcs falaram
if (i > 0)
return true
else
return false
end
kkkkkkk
pra que fazer um codigo mais limpo se eu posso fazer um mais porco?
kkkkkkk