Árvore de páginas

Variáveis Locais

Abrangência

Versão 5.07

Versão 5.08

Versão 6.09

Versão 7.10

Versão 8.11

Versões Anteriores


Variáveis locais são pertencentes apenas ao escopo da função onde foram declaradas. Devem ser explicitamente declaradas com o identificador LOCAL, como no exemplo:


Function Pai()
Local nVar := 10, aMatriz := {0,1,2,3}
.
<comandos>
.
Filha()
.
<mais comandos>
.
Return(.T.)




Neste exemplo, a variável nVar foi declarada como local e atribuída com o valor 10. Quando a função Filha é executada, nVar ainda existe mas não pode ser acessada. Quando a execução da função Pai terminar, a variável nVar é destruída. Qualquer variável com o mesmo nome no programa que chamou a função Pai não é afetada.

Variáveis locais são criadas automaticamente cada vez que a função onde forem declaradas for ativada. Elas continuam a existir e mantêm seu valor até o fim da ativação da função (ou seja, até que a função retorne o controle para o código que a executou). Se uma função é chamada recursivamente (por exemplo, chama a si mesma), cada chamada em recursão cria um novo conjunto de variáveis locais.

A visibilidade de variáveis locais é idêntica ao escopo de sua declaração. Ou seja, a variável é visível em qualquer lugar do código fonte em que foi declarada. Se uma função é chamada recursivamente, apenas as variáveis locais criadas na mais recente ativação são visíveis.

A declaração de variáveis locais dentro de uma função deve preceder qualquer comando interno ou declaração de outros tipos de variáveis (Private ou Public) da função caso contrário será gerado um erro de compilação.

Exemplo:

Function A( )

Private x:= 0

Local b:=0 <<<<< ERRADO, ERRO DE COMPILAÇÃO

...

Return

Versão correta:

Function A( )

Local b:=0 // correto

Private x:=0

....

Return



  • Sem rótulos