|
DICA TÉCNICA O lugar correto dos parênteses é importante
O propósito deste artigo é reforçar que o compilador não pode validar se uma expressão foi programada corretamente.
Tomemos como exemplo a ação de verificar se o nome de um cliente está em branco na base de dados. Uma forma de fazer isso é comparar o valor de uma variável (campo de um arquivo) com uma string em branco. Se você quiser ter certeza de que o campo do arquivo (ou variável) está em branco, você pode usar a função Trim:
If (Trim(Clientes.Nome) = "") Begin Send FazAlgo End
Se você fechar o parêntese da função Trim no final da expressão, o compilador ainda irá ver a expressão como válida. Veja o código abaixo e compare com o código acima. A diferença é sutil.
If (Trim (Clientes.Nome = "")) Begin Send FazAlgo End
O resultado também será diferente. No primeiro caso, a procedure FazAlgo será executada quando o campo Clientes.Nome realmente estiver vazio. Já no segundo caso, a procedure FazAlgo será executada independentemente de existir informação no campo ou não. Isto ocorre porque (Clientes.Nome = “”) é uma expressão que retorna True ou False e (Trim(True)) ou (Trim(False)) é sempre True.
Como o comando If trabalha com uma expressão booleana, o teste para saber se uma string contém dados, ou seja, é diferente da string nula “”, pode ser feito da seguinte forma:
If (sData) ....
O mais correto tecnicamente e recomendado, entretanto, é que a linha acima seja escrita como:
If (sData <> "") ....
Isto é muito mais intuitivo e claro para qualquer um que estiver lendo o código fonte (compilador, runtime ou um ser humano). Portanto, voltando para a questão da posição dos parênteses em expressões, o primeiro exemplo poderia ser escrito da seguinte forma:
If (Clientes.Nome = "") Begin Send FazAlgo End
Isto porque o runtime considera que um campo da base de dados que contém apenas espaços em branco está vazio.
 |
Não perca na próxima edição: |
| |
Usando corretamente o comando If com diferentes tipos de dados |
|