O Ruby é, sem dúvida, uma linguagem interessante. Tenho observado algumas peculiaridades que não me lembro de ter visto em outras linguagens. Uma dessas peculiaridades é a precedência de operadores, mais especificamente em relação aos operadores lógicos.
O Ruby dispõe duas formas de se fazer uma comparação lógica. Por exemplo, você pode usar
1 | && |
ou
1 | and |
,
1 | || |
ou
1 | or |
e
1 | ! |
ou
1 | not |
. No fundo, as operações são iguais, mas a diferença está na precedência desses operadores. Os operadores
1 | && |
,
1 | || |
e
1 | ! |
têm maior precedência sobre os operadores
1 | and |
,
1 | ou |
e
1 | not |
. Dessa forma, o bloco a seguir não funcionaria se colocássemos
1 | && |
no lugar de
1 | and |
. Se fizéssemos isso, o Ruby primeiro faria a comparação entre
1 | f(x) |
e
1 | b |
para depois atribuir o resultado a
1 | a |
e não o contrário, como era esperado.
-
if a = f(x) and b = f(y) and c = f(z) then puts “Resultado” end
(…)
Leia o restante do artigo Precedência dos operadores em Ruby (250 palavras)
© Elvis for Elvis Fernandes, 2009. |
Permalink |
Nenhum comentário |
Adicione ao
del.icio.us
Tags: lógica, operadores, programação, ruby




