Usando IF Ternario no Delphi

Olá, vou falar de um assunto básico, mas que pode melhorar seu código, deixando mais simples e legível.

Primeiro compare os códigos abaixo:

if condição then
  var := x
else
  var := y;
var := ifthen(condição, x,y);

Em qual deles a leitura e manutenção parece mais fácil?

Pesquisei sobre esse assunto na internet e achei algumas coisas, mas vou falar da forma que conheço…

Para começar, no Delphi(eu uso 7 e 2006) nós temos esse operador condicional em forma de function implementado nas units:

  • SWSystem – iif
  • StrUtils – ifthen
  • Math – ifthen

Sendo que o iif retorna string ou integer, e o ifthen retorna string se for o da unit StrUtils ou um valor numérico(integer, Double) se for da unit Math.

O que podemos fazer e que facilitaria mais o nosso trabalho seria criar um IF ternário que retornasse variant, assim poderíamos tratar qualquer tipo de dado com uma única função:

Function ifthen(cond: boolean; aTrue: variant; aFalse:  variant): variant;
begin
if cond then
  Result := aTrue
else
  Result :=  aFalse;
end;

Conclusão:

Realmente, é um procedimento básico mas que torna nosso código menor e mais limpo. Lembro também que o uso de if ternário não tem impacto na performance da aplicação, até porque a function executa um if/then/else do mesmo jeito.

Até mais…
Willian Rodrigues

Share on Facebook0Tweet about this on Twitter0Share on Google+0Share on LinkedIn0Print this pageEmail this to someone

Um comentário sobre “Usando IF Ternario no Delphi

  1. Gilberto Molina

    Olá

    Willian, tive esta mesma dificuldade. Sei que o post é antigo, mas como está na web, sempre é bom compartilhar as soluçoes.
    Para usar um IFTHEN onde o resultado que precisava era um booleano.
    Utilizei como alternativa o seguinte:

    variavel_booleana := StrToBool( ifthen( condição , ‘True’, ‘False’) );

    Espero que seja util para alguem que procure a mesma solução.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Atualizações por e-mail

Assine a newsletter e receba as atualizações do blog no seu e-mail.