



Fala galera da programação, tudo beleza?
Hoje vamos ver como utilizar o Operador Condicional Ternário com classes e tipos de dados de forma genérica.
Caso queira ver mais sobre os operadores, veja o nosso artigo principal sobre o assunto.
Em Delphi, a operação ternária pode ser simulada usando o operador if-then-else em uma única linha. Aqui está um exemplo simples:
program ExemploOperacaoTernaria; {$APPTYPE CONSOLE} uses SysUtils; var Numero: Integer; Resultado: String; begin Numero := 10; // Exemplo de operação ternária em Delphi Resultado := IfThen(Numero > 0, 'Positivo', 'Negativo'); Writeln('O número é ', Resultado); Readln; end. |
Neste exemplo, a função IfThen é usada para realizar uma operação ternária simulada. Se o número for maior que zero, a string ‘Positivo’ será atribuída a Resultado; caso contrário, ‘Negativo’ será atribuído. A função IfThen é uma função auxiliar que foi introduzida nas versões mais recentes do Delphi para facilitar a criação de expressões condicionais em uma única linha. Se você estiver usando uma versão mais antiga do Delphi que não possui essa função, você pode implementá-la manualmente. Aqui está uma possível implementação:
function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string): string; begin if AValue then Result := ATrue else Result := AFalse; end; |
Como vimos acima, podemos ter funções que retornam string, integer e etc. Também podemos criar funções semelhantes para retornar dados específicos. Bem, e se quisermos utilizar uma única função para retornar qualquer tipo de dado, como o JavaScript, é possível? Felizmente sim!
Veja o exemplo:
(* Criado pelo Professor Giovani Da Cruz *) program ExemploOperacaoTernariaGenerica; {$APPTYPE CONSOLE} uses SysUtils; type TGenerics = class class function IfThen(const AValue: Boolean; const ATrue, AFalse: T): T; static; end; class function TGenerics.IfThen(const AValue: Boolean; const ATrue, AFalse: T): T; begin if AValue then Result := ATrue else Result := AFalse; end; var Numero: Integer; Resultado: String; begin Numero := 10; // Exemplo de operação ternária genérica em Delphi Resultado := TGenerics.IfThen(Numero > 0, 'Positivo', 'Negativo'); Writeln('O número é ', Resultado); Readln; end. |
Neste exemplo, a função IfThen é agora genérica e pode trabalhar com qualquer tipo de dado. A sintaxe indica que a função é genérica e o tipo de dado é especificado ao chamar a função. No exemplo acima, é usado, mas você pode substituir por qualquer tipo de dado que desejar.
Artigo originalmente postado no Blog Giovani Da Cruz, visite também:
Operador Condicional Ternário em Delphi com tipo de dados Genérico
Beleza pessoal? Espero que tenham gostado.
Dúvidas ou sugestões? Deixe o seu comentário!
Um abraço e até o próximo post. Valeu!