Parámetros por valor y por referencia
Helper(nValue); Helper(@nValue)Distingue copia escalar de modificación de variable del llamador.
Descripción general
En llamada común asignar número al parámetro no cambia variable numérica del llamador. Con @ en llamada, función puede modificarla por referencia. Argumentos son posicionales, no se corresponden por nombre local. Ejemplo escalar separa comportamientos. Arrays/objetos requieren analizar contenido compartido; pasar contenedor no copia independientemente cada elemento. (Fuentes: refs. 1–2.)
Sintaxis
Helper(nValue); Helper(@nValue)Ejemplo comentado
#Include "Protheus.ch"
User Function Ed570()
Local nValor := 10
// Solo segunda llamada puede cambiar variable del llamador.
IncrementValue(nValor)
ConOut(cValToChar(nValor))
IncrementValue(@nValor)
ConOut(cValToChar(nValor))
Return Nil
Static Function IncrementValue(nValor)
nValor := nValor + 1
Return nValorTras llamada por valor: 10. Por referencia: 11. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- Documentar argumentos mutables y validar tipos. Evitar efectos ocultos y no pasar constantes como variables de salida.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.