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.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022