O que é notação húngara, e como é utilizada em AdvPL e TL++

No artigo de hoje, vamos explicar o que é Notação Húngara e como ela é utilizada em AdvPL.

A Notação Húngara foi criada por Charles Simonyi (que trabalhou na primeira versão do Microsoft Word), sendo que a intenção é que o primeiro caractere de uma variável ajude a identificação do escopo dela.

Essa notação foi trazida ao AdvPL, devido as limitações das variáveis de terem até 10 caracteres de tamanho, então ao invés de eu ter por exemplo, uma variável chamada idadeFuncionario, eu teria uma nIdadeFunc.

Hoje existe o recurso de variáveis fortemente “tipadas” (tanto em AdvPL como TL++), porém essa notação é mantida pelo legado e pela organização dos códigos fontes.

Temos 9 tipos principais, que iremos detalhar abaixo:

  • “a”: Array. São variáveis que podem ser matrizes ou vetores. Exemplos: aArea, aValores, aCabec
  • “b”: Bloco de código. São variáveis que contém funções que podem ser executadas como EVal, DbEVal e AEval. Exemplos: bBtnOk, bBtnCancel, bInit
  • “c”: Caractere. São variáveis com conteúdo texto, as famosas strings. Exemplos: cNome, cAliasQry, cMensagem
  • “d”: Data. São variáveis com conteúdo data DD/MM/YYYY. Exemplos: dDataBase, dDtOntem, dDataNasc
  • “j”: Objeto JSON. São variáveis JSON criadas pela classe JSONObject. Exemplos: jResponse, jRegistro, jDados
  • “l”: Lógico. São variáveis do tipo booleanos, que podem ser verdadeiro ou false (.T. ou .F. em AdvPL). Exemplos: lDeuCerto, lContinua, lRet
  • “n”: Numérico. São variáveis com valores inteiros ou com casas decimais. Exemplos: nValor, nIdade, nAtual
  • “o”: Objeto. São variáveis instanciadas de classes como telas e relatórios. Exemplos: oPrint, oBrowse, oStruct
  • “u”: Indefinido. São variáveis que podem ter seu conteúdo alternado entre tipos diferentes como ser caractere depois ser numérico depois ser data e assim por diante. Exemplos: xConteudo, xRet, xStatus

Referências:

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação