Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Versão 5.08

 

Portuguese

Pagetitle
Variáveis Estáticas
Variáveis Estáticas

Variáveis Estáticas

Abrangência

Versão 5.07

Versões Anteriores

Versão

6

10.

09

xx

Versão

7

11.

10

xx

Versão

8.11Versões AnterioresFunction Pai()

12.xx


Variáveis estáticas funcionam basicamente como as variáveis locais, mas mantêm seu valor através da execução. Variáveis estáticas devem ser declaradas explicitamente no código com o identificador STATIC.

O escopo das variáveis estáticas

depende de onde são declaradas. Se forem declaradas dentro do corpo de uma função ou procedimento, seu escopo será limitado àquela rotina. Se forem declaradas fora do corpo de qualquer rotina, seu escopo é todo o arquivo de programa.
Neste exemplo, a variável nVar é declarada como estática e inicializada com o valor 10:

é limitado ao programa a qual foi declarada, independente do ponto onde a variável foi declarada.

Exemplo:

Os dois trechos de código abaixo tem o mesmo resultado:

{code:java}

Static nVar := 10

.
<comandos>
.
Filha()
.
<mais comandos>
.
            // Declaração fora do escopo de função
User Function vStatic()
    Pai()
Return
Static Function Pai()
ConOut("Pai")
ConOut(nVar)
Filha()
Return(.T.
)
Quando a função Filha é executada, nVar ainda existe mas não pode ser acessada. Diferente de variáveis declaras como LOCAL ou PRIVATE, nVar continua a existir e mantem seu valor atual quando a execução da função Pai termina. Entretanto, somente pode ser acessada por execuções subseqüêntes da função Pai.
)
{code}
{code:java}
Static Function Filha()
ConOut("Filha")
ConOut(nVar)
Return
User Function vStatic()
    Pai()
Return
Static Function Pai()
Static nVar := 10        // Declaração no corpo da função
ConOut("Pai")
ConOut(nVar)
Filha()
Return(.T.)
Static Function Filha()
ConOut("Filha")
ConOut(nVar)
Return
{code}