logotipo Blog Giovani Da Cruz
Programação

Operador Condicional Ternário em Delphi com tipo de dados Genérico

3 min de leitura 633 visualizações

Operador Condicional Ternário

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.

Operação Ternária: Uma Visão Abrangente

 

Uso em Pascal (Delphi)

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;

 

Uso em modo genérico

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<T>(const AValue: Boolean; const ATrue, AFalse: T): T; static;
  end;

class function TGenerics.IfThen<T>(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<string>(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 <T> indica que a função é genérica e o tipo de dado é especificado ao chamar a função. No exemplo acima, <string> é usado, mas você pode substituir por qualquer tipo de dado que desejar.

 

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!

 

Deixe um comentário

Seu e-mail não será publicado.