Choose Case: Cases com datatypes variados

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.