Fecha actual Mar Jul 01, 2025 2:07 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 4 mensajes ] 
Autor Mensaje
NotaPublicado: Vie Oct 14, 2005 11:55 am 
Avatar de Usuario

Registrado: Mar Oct 11, 2005 7:10 pm
Mensajes: 8
Si recibo como parametro de una función, y la sorbrescribo dentro de la fucncion, fuera de esta no tengo los datos sobreescritos.

Ejemplo.

Function Main()

local aVar := { 1, 2, 3, 4 }

? aVar[1] // Imprime 1

Cambia( aVar )

? aVar[1] // Imprime 1

Return nil

//----------------------------------//

Static Fucntion Cambia( aVar )

aVar := { 0, 0, 0, 0 }

Return nil

//----------------------------------//

Saludos.


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 14, 2005 12:15 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Manolo,

Si intentas cambiar el contenido del array con una asignación no te valdrá aVar := { 0, 0, 0, 0 }, debes copias los nuevos valores. Puedes hacerlo de forma rápida con aCopy( { 0, 0, 0, 0 }, aVar )

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 14, 2005 12:58 pm 
Avatar de Usuario

Registrado: Vie Oct 14, 2005 12:50 pm
Mensajes: 78
Ubicación: Girona
Bruno escribió:
Manolo,

Si intentas cambiar el contenido del array con una asignación no te valdrá aVar := { 0, 0, 0, 0 }, debes copias los nuevos valores. Puedes hacerlo de forma rápida con aCopy( { 0, 0, 0, 0 }, aVar )


Bruno,

Pero... pasando el array por referencia ¿debería de funcionar tambien, no ???

Function Main()
local aVar := { 1, 2, 3, 4 }

? aVar[1] // Imprime 1
Cambia( @aVar )
? aVar[1] // Imprime 1
Return nil

//----------------------------------//

Static Fucntion Cambia( aVar )
aVar := { 0, 0, 0, 0 }
Return nil

//----------------------------------//

_________________
Un Saludo,
Xevi.


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Vie Oct 14, 2005 1:14 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Xevi,

Si, pasando los parámetros por referencia funciona también y es como se debería hacer, pero el problema es cuando se usa la función en varios sitios, o cambias la llamada en todos ellos o sólo modificas el código en la función y te despreocupas de cómo la llamaste desde otras partes.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 4 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron