Choose Case: Cases com datatypes variados
Overview
Bem-vindo ao mundo do PowerBuilder, onde os desafios de codificação encontram soluções inovadoras. Esta postagem revela um truque para levar o comando Choose Case a novos patamares, permitindo testes com múltiplas condições e diferentes tipos de dados, tudo isso de forma simples e eficiente. Se você pensava que estava limitado ao uso de variáveis numéricas, prepare-se para expandir seus horizontes com esta técnica engenhosa. Vamos lá, descobrir como tornar o Choose Case seu aliado na elaboração de códigos limpos e multifuncionais.
Choose Case é o equivalente do PowerBuilder ao Switch dp C# e é uma opção boa, mas se você utilizar uma variável numérica, está preso nela para todo o choose. [música de suspense]
Existe uma solução para isso, uma forma de utilizar o choose case com quantas variáveis você precisar e misturando datatypes diferentes.
Este é um Choose Case tradicional, verificando o retorno de um FileOpen:
long ll_ret
ll_ret = FileOpen(ls_filePath)
choose case ll_ret
case -1
return "Erro ao fazer retrieve"
case else
return "Arquivo aberto corretamente. Handle: " + string(ll_ret)
end choose
Ok, funciona. Foi possível verificar o resultado da função, mas faltou um fator: Se a referência para o arquivo (ls_filePath) for nula, não vai funcionar.
Temos uma alternativa: Fazer o Choose Case testando a condição true. Sim: Choose case true! Desta forma você consegue testar o que for necessário. Veja o exemplo abaixo:
long ll_ret
ll_ret = FileOpen(ls_filePath)
choose case true
case (ll_ret = -1)
return "Erro ao fazer retrieve"
case (ll_ret > 0)
return "Arquivo aberto corretamente. Handle: " + string(ll_ret)
case isNull(ll_ret)
return "O arquivo informado é nulo"
case else
return "Algum erro não esperado ocorreu. Retorno: " + string(ll_ret)
end choose
Pronto. Agora foi possível cobrir todas as possibilidades do FileOpen com apenas 1 Choose Case. Neste formato, você consegue testar várias coisas, desde que apenas uma das operações retorne true.
Com esta técnica, você consegue realizar uma gama muito maior de verificações com menos código e uma estrutura mais legível.
Dúvidas sobre o artigo? Sugestões? Precisa de ajuda com outra funcionalidade do PowerBuilder? Deixe um comentário.