Operador Condicional Ternário em Delphi com tipo de dados Genérico
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. |
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; |
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(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. |
(*
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!
-
Giovani Da Cruz
-
478 views
- 0 comentários
- 7 de dezembro de 2023
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo