Olá pessoal…
Na vídeo aula de hoje, vou falar um pouco sobre Escopo de Variáveis em AdvPL (como Local, Public, Private e Static).
Abaixo os links do TDN sobre o assunto:
Escopo de variáveis
Abaixo o código fonte utilizado:
//Bibliotecas
#Include "Protheus.ch"
//Variáveis Estáticas
Static cTesteSta := ''
/*/{Protheus.doc} zEscopo
Função exemplo de escopo de variáveis
@author Atilio
@since 18/10/2015
@version 1.0
@example
u_zEscopo()
/*/
User Function zEscopo()
Local aArea := GetArea()
//Variáveis Locais
Local nVar01 := 5
Local nVar02 := 8
Local nVar03 := 10
//Variáveis Privadas
Private cTst := "Teste Pvt"
cTst2 := "Teste Pvt2"
//Variáveis públicas
Public __cTeste := "Daniel"
Public __cTeste2 := "Atilio"
//Chamando outra rotina para demonstrar o escopo de variáveis
fEscopo(nVar01, @nVar02)
Alert(nVar02)
Alert("Public: "+__cTeste + " " + __cTeste2)
RestArea(aArea)
Return
/*-------------------------------------------------*
| Função: fEscopo |
| Autor: Daniel Atilio |
| Data: 18/10/2015 |
| Descr.: Função que testa escopo de variáveis |
*-------------------------------------------------*/
Static Function fEscopo(nValor1, nValor2, nValor3)
Local aArea := GetArea()
//Variáveis locais
Local __cTeste2 := "Teste2"
//Valores Default
Default nValor1 := 0
Default nValor2 := 0
Default nValor3 := 0
//Alterando conteúdo do nValor2
nValor2 += 10
//Mostrando conteúdo da variável private
Alert("Private: "+cTst2)
//Setando valor da variável pública para demonstrar como pode ser perigoso a utilização
__cTeste := "Teste1"
RestArea(aArea)
Return
Se quiser fazer o download desse código, acesse nosso GitHub pelo link github.com/dan-atilio/AdvPL (Exemplos > Vídeo Aulas > 004 – Escopo de Variáveis > zEscopo.prw).
Boim pessoal, por hoje é só.
Abraços e até a próxima.