Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: AdvPL/TLPP Estudando xBase: A Linguagem "Pátria

_Créditos da imagem: Gerada com auxílio do ChatGPT/Gemini_ **Domine AdvPL/TLPP Estudando xBase: A Linguagem "Pátria"** Você quer ser um programador proficiente em **AdvPL/TLPP**? Está em busca de cursos online, suporte via Skype ou Facebook? Que tal uma abordagem que realmente faça você **dominar** essas linguagens entendendo suas bases? Eu domino o AdvPL/TLPP porque **não estudo diretamente essa linguagen**. O segredo? Eu estudo **xBase**, a "linguagem pátria" que deu origem ao AdvPL/TLPP. Ao compreender a xBase, você adquire uma base sólida para dominar suas variações e derivados. E qual é a melhor e maior fonte de conhecimento xBase hoje? Sem dúvidas, é o projeto **(x)Harbour**. Este compilador e repositório oferece uma vasta coleção de exemplos e ferramentas que não só aprimoram suas habilidades, mas também ampliam sua compreensão do funcionamento interno da linguagem. Algumas sugestões práticas para iniciar sua jornada: - **Explore os exemplos no projet

Protheus :: Programação Básica em Advpl “Combo XXIX”

STATIC e PUBLIC:

Estas duas instruções também declaram variáveis. PUBLIC declara variáveis que ficam visíveis durante todo o programa. Os problemas que examinamos com relação as variáveis Private também ocorrem com as variáveis Public, contudo com mais abrangência. Em vez de isolados a rotinas chamadas a partir de uma função, os problemas ocorrem na aplicação inteira.

As variáveis STATIC podem ajudar a solucionar este problema. Existem dois tipos de variáveis static: internas e externas. A diferença está na abrangência. As variáveis static em nível de arquivo abrangem o arquivo: elas ficam visíveis em qualquer função ou rotina dentro do arquivo de programa no qual estão declaradas. As variáveis static declaradas dentro de uma função ( static internas ) tem escopo local, exatamente como as variáveis local.

Obs.: No Protheus, as variáveis Static criadas à partir do menu, serão liberadas sempre que se voltar para o menu. Já as Static criadas durante a entrada do sistema serão mantidas enquanto o sistema estiver sendo usado.

A característica principal da variável Static é que ela pode sair do escopo e não conseguirmos mais acessá-la, mas, na próxima vez que em que entrarmos no programa ou função que a declarou ela terá o mesmo valor da última vez em que o programa ou função foi executado. Exemplo:

TEST1.PRG

Static nVar := 0 //Static em nível de arquivo ( externa )

User Function A()

Alert( Str( nVar ) ) //nVar será zero aqui...
nVar := 10

Return( NIL )

User Function B()

Alert( Str( nVar ) ) //nVar será 10 aqui...

Return( NIL )

User Function C()

Static nVar //Static em nível de função ( interna )

DEFAULT nVar := 0

Return( ++nVar )

TEST2.PRG

User Function Test() //nVar não está disponível em Test2()

Local nLoop
Local nLoops
Local nRetC

U_A() //aqui acessando a variável Static Externa
U_B() //aqui acessando a variável Static Externa

nLoops := 15
For nLoop := 1 To nLoops
nRetC := U_C() //aqui acessando a variável Static Interna
Alert( Str( nRetC ) )//nVar em U_C será incrementada a cada
//iteração do Loop
Next nLoop

Return( NIL )

Comentários

Postagens mais visitadas