Ámbito de
variables
El ámbito determina dónde puede accederse a una variable y durante cuánto tiempo permanece disponible su valor.
Local nNumero := 10El identificador indica que nNumero pertenece al ámbito local de la función.
01LOCAL
Función actual
LOCAL
Función actual
Se crea en cada activación de la función. Las llamadas recursivas reciben conjuntos independientes de variables locales.
- Visibilidad
- Solo la rutina que la declaró
- Duración
- Hasta que la función retorne
User Function Pai()
Local nVar := 10
Filha()
Return .T.
Static Function Filha()
// nVar no está visible aquí
Return02STATIC
Rutina o archivo
STATIC
Rutina o archivo
Dentro de una función queda restringida a la rutina y conserva su valor entre llamadas. Fuera de las rutinas puede accederse desde el archivo actual.
- Visibilidad
- Depende del lugar de declaración
- Duración
- Durante la ejecución del entorno
User Function Contador()
Static nChamadas := 0
nChamadas++
ConOut(nChamadas)
Return03PRIVATE
Función creadora y llamadas descendientes
PRIVATE
Función creadora y llamadas descendientes
Puede declararse o crearse implícitamente mediante asignación. Una Private con el mismo nombre en una función llamada oculta temporalmente la anterior.
- Visibilidad
- Ámbito dinámico
- Duración
- Hasta que retorne la función creadora
User Function Pai()
Private nVar := 10
Filha()
Return .T.
Static Function Filha()
ConOut(nVar) // 10
Return04PUBLIC
Todo el entorno
PUBLIC
Todo el entorno
Permanece disponible después del retorno de la función creadora. Sin inicialización explícita, asume el valor lógico falso (.F.).
- Visibilidad
- Global, salvo que una Private la oculte
- Duración
- Hasta el final de la ejecución
User Function CriarStatus()
Public lSistemaAtivo := .T.
Return
User Function ConsultarStatus()
ConOut(lSistemaAtivo)
ReturnDeclara la intención
Prefiere `LOCAL` para datos temporales y `STATIC` cuando realmente sea necesario conservar estado. Usa `PRIVATE` y `PUBLIC` solo cuando la visibilidad dinámica o global forme parte del diseño de la rutina.
- SILVA, Waterloo Ferreira da. A Linguagem AdvPL. 2004, p. 22-24. Contenido resumido y revisado; ejemplos adaptados.
- TOTVS. El contexto de variables dentro de un programa. TDN.
- TOTVS. Creación y asignación de variables. TDN.
- TOTVS. SDK Microsiga Protheus. TDN — referencia complementaria.
