Autor |
Mensaje |
campanillas
Usuario
Registrado: Septiembre 2009
Mensajes: 18
Edad: 50
|
Variable Por Referencia
Perdonar mi ignorancia, pero como puedo enviar a una funcion una variable por refencia, en Lenguaje C se envia con un '&' pero en gambas no tengo ni idea.
|
#1 Domingo, 01 Noviembre 2009, 18:28 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Variable Por Referencia
Bienvenida!
Extraído del wiki de Gambas:
Los objetos se acceden "por referencia", por ejemplo usando un puntero hacia ellos, usando una variable cuyo valor es la dirección en memoria de su estructura de datos.
Se puede ver la dirección de un objeto usando la instrucción PRINT:
DIM aStr AS NEW String[]
PRINT aStr
(String[] 0x80dccf8)
Supongo que creando una variable del tipo Pointer y asignándole una dirección de memoria, se podría hacer lo que quieres, pero no estoy seguro.
Quizás alguien más pueda arrojar algo de luz sobre este particular.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Domingo, 01 Noviembre 2009, 18:53 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Variable Por Referencia
Hola
En gambas no se pueden pasar variables por referencia aunque por lo visto será posible en un futuro mediante la palabra clave byref.
Actualmente las variables se pasan por valor.
Citar: En gambas, los tipos de datos simples (Integer, String, etc.) se pasan por valor a los procedimientos y funciones. No se pueden pasar por referencia como en Visual Basic. Recuerde que VB pasa los parámetros por referencia si no se usa la palabra clave ByVal, así que tenga cuidado cuando intente portar un proyecto VB. También se pasan siempre por referencia el contenido de los tipos de datos objeto (array , collections, objects) en ambos lenguajes.
Diferencias con Visual Basic
Efectivamente llevo curioseando unos días en los temas de punteros y estructuras. Aún no tengo nada claro. En principio el wiki de gambas dice lo que dice.
|
#3 Domingo, 01 Noviembre 2009, 18:56 |
|
|
campanillas
Usuario
Registrado: Septiembre 2009
Mensajes: 18
Edad: 50
|
Re: Variable Por Referencia
Siento ser tan torpe, pero lo que quiero es que a una funcion le llegue una variable por referencia para asignarle un valor seria asi???
public function suma (a as string, b as string, c as NEW string[])$
c= a & " " & b
|
#4 Domingo, 01 Noviembre 2009, 19:01 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Variable Por Referencia
y que tal
c=funcion(a,b)
private funcion(p1 as string, p2 as string) as string
return p1 & " " & p2(
end
|
#5 Domingo, 01 Noviembre 2009, 19:13 |
|
|
campanillas
Usuario
Registrado: Septiembre 2009
Mensajes: 18
Edad: 50
|
Re: Variable Por Referencia
gracias pero lo anterior era solo un ejemplo, ya me habeis indicado de que no se puede trabajar con variable por referencia solo por valor.
|
#6 Domingo, 01 Noviembre 2009, 19:44 |
|
|
soplo
Analista Programador
Registrado: Septiembre 2009
Mensajes: 843
Edad: 44
|
Re: Variable Por Referencia
Bueno en principio eso es así hoy por hoy (aunque no será así en el futuro) pero estamos viendo si se puede hacer por medio de enviar punteros. Solo que ese es un tema que al menos yo tengo muy verde en gambas.
En C no tiene nada del otro mundo, pero gambas es otra cosa. Ya sabes
|
#7 Domingo, 01 Noviembre 2009, 19:49 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Variable Por Referencia
Las variables por referencia sólo están implementadas en Gambas3 y nunca lo estarán en Gambas2. Aquí se puede ver la forma de usarlo en Gambas3, al final de la página (en inglés):
http://gambasdoc.org/help/lang/methoddecl?en
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Lunes, 02 Noviembre 2009, 08:22 |
|
|
campanillas
Usuario
Registrado: Septiembre 2009
Mensajes: 18
Edad: 50
|
Re: Variable Por Referencia
Gracias a todos por la ayuda.
|
#9 Lunes, 02 Noviembre 2009, 14:46 |
|
|
|