Tempo aproximado para leitura: 00:02:00 min
Dúvida
O que é a Linguagem TLpp (TOTVS Language plus plus)?
Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – Versão 12
Solução
A linguagem TLpp (TOTVS Language plus plus) é uma evolução do AdvPL.
Desenvolvida para trazer ao programador AdvPL algumas facilidades vistas em outras linguagens, como Nomes longos, Tipagem, entre outras facilidades.
Exemplos:
//O recurso de namespace foi liberado na versão 17.3.0.0 para a linguagem TLPP e tem como
//benefício a melhor organização do código.
namespace exemplo
Public Method new()
data dataI
Endclass
Local cFrase := "exemplo frase TLPP" as Character
conout(cFrase)
Return self
Local nNumber := 2 as Numeric
conout(nNumber)
u_testeNamespace2()
//a função testeNamespace2 poderá ser chamada sem explicitar o
//namespace nem utilizar using porque estão no mesmo fonte
Return
conout("testeNamespace2")
Return
Exemplo chamada do namespace em outro fonte:
//para realizar a chamada basta colocar o nomedo namespace definido + o nome da função
//definida no fonte do name space
exemplo.u_testeNamespace()//faço referencia ao namespace.nomedaminhafunção
Observação:
- Os arquivos de biblioteca (includes) passam a ter a extensão .th (TLpp Header File) e são utilizados da mesma maneira que os arquivos .ch do AdvPL, ou seja, são pré-processados como parte da linguagem TLpp.
- Para desenvolver em TLpp é importante você extrair os includes da linguagem, que já vem com o tlpp.rpo, adicionar [#include 'tlpp-core.th'] no seu programa tlpp e pronto, você já pode usufruir de todos os novos recursos da linguagem.
- Os arquivos com extensão .ch continuam sendo aceitos, mas é recomendado que a nova extensão seja adotada para novos desenvolvimentos.
- O nome do namespace pode ser um nome simples ou um nome que contenha "." como separador
- Importante ressaltar que todo nome de namespace iniciado com "tlpp" está reservado ao tlppCore. Desse modo, qualquer tentativa de uso fora desse domínio, será bloqueada em tempo de compilação.
- Uma vez utilizado o recurso namespace no 'main' da sua aplicação, é necessário que o explicite utilizando o separador "."
Importante:
|
Uma das premissas do TLpp é respeitar o escopo definido pelo desenvolvedor para funções, classes, métodos, propriedades e variáveis. Portanto, em fontes com a extensão .tlpp, as funções definidas como STATIC somente poderão ser acessadas por funções ou métodos pertencentes ao mesmo código fonte. Devido a isso, rotinas que fazem uso do recurso "StaticCall" não funcionarão em TLpp. Caso você possua rotinas que façam uso direto a esse recurso, aconselhamos a refatoração! |
Saiba mais
A Linguagem TLPP
MVC X TLpp
Extrair includes TLPP.RPO
0 Comentários