Se você é novo no ColdFusion, mas já conhece alguma outra linguagem de programação, é de tamanha estranheza os operadores condicionais do CF.
Apesar de aparentarem não fazer sentido nenhum as siglas que presentam os operadores, há um sentido sim, e nós vamos abordá-los neste artigo.
Atualmente, nas versões mais novas do ColdFusion (8+), os operadores são os mesmos do PHP e JavaScript, mas para versões anteriores, essa compatibilidade de notações para utilização dos operadores condicionais ainda não existia. Portanto, se você está tendo que lidar com um ambiente mais antigo do ColdFusion, as informações desse artigo lhe cairão como uma luva!
Consideremos duas variáveis A e B para nossos exemplos:
<cfset A = 10> <cfset B = 20>
Vamos então para o operador de "igualdade". Este operador nada mais faz do que checar se dois valores são iguais:
<cfif A eq B> <cfoutput> O valor da variável A é #A#, igual ao valor de B. </cfoutput> </cfif>
O termo "eq" significa equals ("igual a" em tradução do inglês). É utilizado quando desejamos verificar se um termo é igual ao outro termo;
Podemos notar que para apresentar em tela algum texto, usamos o cfoutput.
Também podemos notar que para apresentar o valor de uma variável no cfoutput, precisamos colocá-la entre cerquilhas para que o CF interprete como uma variável aquela parte de texto.
Vamos agora implementar o else para demonstrar a não satisfação da expressão de igualdade.
<cfif A eq B> <cfoutput> O valor da variável A é #A#, igual ao valor de B. </cfoutput> </cfelse> <cfoutput> O valor da variável A é #A#, diferente do valor de B que é #B#. </cfoutput> </cfif>
Podemos ver que o comando cfelse entra "no meio" do comando IF, e não há tag de fechamento. O fechamento do ELSE é o próprio fechamento do IF.
Vejamos agora o operador de "não igualdade" (ou "diferença", se preferir). Este operador faz o exato contrário do eq, checando se os dois valores são diferentes:
<cfif A neq B> <cfoutput> O valor da variável A é #A#, diferente do valor de B que é #B#. </cfoutput> </cfelse> <cfoutput> O valor da variável A é #A#, igual ao valor de B. </cfoutput> </cfif>
O termo "neq" significa not equals ("não é igual a" em tradução do inglês).
Já finalizamos os tipos de operadores exclusivos para igualdade, mas se você já conhece outras linguagens de programação, sabe que os operadores de igualdade também acompanham os operadores de maior e de menor nas expressões em que queremos checar se um valor é maior ou igual ou se é menor ou igual. Antes de explorar essas notações neste artigo, vamos explorar os operadores de maior e de menor.
Quando precisamos verificar se um valor é maior que o outro, fazemos da seguinte forma:
<cfif A gt B> <cfoutput> O valor da variável A é #A#, MAIOR que o valor de B que é #B#. </cfoutput> </cfelse> <cfoutput> O valor da variável A é #A#, MENOR que o valor de B que é #B#. </cfoutput> </cfif>
O termo "gt" significa greater than ("maior que" em tradução do inglês).
Para checar o contrário da expressão acima, precisamos verificar se um valor é menor que o outro. Portanto fazemos assim:
<cfif A lt B> <cfoutput> O valor da variável A é #A#, MENOR que o valor de B que é #B#. </cfoutput> </cfelse> <cfoutput> O valor da variável A é #A#, MAIOR que o valor de B que é #B#. </cfoutput> </cfif>
O termo "lt" significa less than ("menor que" em tradução do inglês).
Agora sim podemos explorar as operações de maior ou igual e menor ou igual.
Vejamos maior ou igual primeiro:
<cfif A gte B> <cfoutput> O valor da variável A é #A#, MAIOR ou IGUAL ao valor de B que é #B#. </cfoutput> </cfelse> <cfoutput> O valor da variável A é #A#, MENOR que o valor de B que é #B#. </cfoutput> </cfif>
O termo "gte" significa greater than or equal to ("maior que ou igual a" em tradução do inglês).
Como eu sei que você já está entendendo tudo até aqui, certamente você já sabe como é a notação do menor ou igual. Vamos ver:
<cfif A lte B> <cfoutput> O valor da variável A é #A#, MENOR ou IGUAL ao valor de B que é #B#. </cfoutput> </cfelse> <cfoutput> O valor da variável A é #A#, MAIOR que o valor de B que é #B#. </cfoutput> </cfif>
O termo "lte" significa less than or equal to ("menor que ou igual a" em tradução do inglês).
Quando comecei a estudar ColdFusion, lá em meados de 2014, esses operadores foi uma das principais coisas que mais me causou estranheza, pois eu já vinha desenvolvendo em PHP e JavaScript há alguns anos, que são de notações bastante diferentes. Memorizar o significado delas em inglês me ajudou muito, pois então bastava colocar as letras iniciais dos termos em inglês. Para quem já tem alguma afinidade com o inglês, essa é uma boa dica para não ficar dependendo de colinhas ao escrever suas operações em ColdFusion.