quarta-feira, 10 de dezembro de 2014

TCL - Multiplas condições em um IF

Olá galera,


Recentemente um estagiário meu estava sofrendo com o alinhamento de várias condições em um IF. Este caso me lembrou que eu já passei por isso e portanto decidi colocar aqui para vocês para que não "sofram" como nós.


O seguinte bloco de código não funciona:

if {{$number == 1 && $name == "hello"} || {$number == 0&&$name == "yes"}} {
    #faça algo
}

O interpretador envia mensagem de erro: IS EXPECTED TO BE A BOOLEAN.

O motivo é que os { } e os ( ) não podem ser colocados em paralelo. Mas no caso dos ( ) eles são reconhecidos como array (ex. $ar(2) ), por tanto, interpretado como array de booleanos.

Utilizem o seguinte bloco de código:

if {(($number == 1)&&($name == "hello")) || (($number == 0)&&($name == "yes"))} {
    #faça algo
}


Até a próxima, Emanuel