Página Inicial > POG > [POG] Comparando retorno de operador lógico com booleano

[POG] Comparando retorno de operador lógico com booleano

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?


POG ,

  1. 17, maio, 2010 em 10:57 | #1

    Já vi coisa pior com o operador ternário:

    return (condition ? true : false);

  2. Davi
    21, maio, 2010 em 09:42 | #2

    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

  3. Fernando
    21, maio, 2010 em 15:30 | #3

    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

  1. Nenhum trackback ainda.