Dudas sobre @ ,&, ?

07/08/2006 - 21:25 por Santo76 | Informe spam
Hola, alguien seria capaz de explicar-me bien las diferencias entre , por
ejemplo

si 'var' es una variable en memoria...

@var

&var

?var

Que harian en cada caso y que diferencias hay, para saber bien como y cuando
utilizar cada una, gracias.

Preguntas similare

Leer las respuestas

#1 Alex Feldstein
08/08/2006 - 12:05 | Informe spam
On Mon, 7 Aug 2006 12:25:02 -0700, Santo76
wrote:

Hola, alguien seria capaz de explicar-me bien las diferencias entre , por
ejemplo

si 'var' es una variable en memoria...

@var

&var

?var

Que harian en cada caso y que diferencias hay, para saber bien como y cuando
utilizar cada una, gracias.




Estas mezclando peras con manzanas.

@var en si no hace nada Es una notación para poasar un parámetro por
referencia.

&var denota indirección. O sea ejecutar el contenido de la variable,
no su nombre. Es mejor y mas rápido, en casi todos los casos, usar
paréntesis:

Use (MiArchivo) Shared In 0

es mejor que:

Use &MiArchivo shared in 0


?var sólo escribe el contenido a la pantalla en uso. Esto se usa en el
IDE pero no en programas (excepto en reportes a mano muy antiguos) ya
que no te dá mucho control de posicionamiento.




Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP

Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(address munged with ROT-13)

Blog: http://alexfeldstein.blogspot.com
Website: http://www.feldstein.net
Respuesta Responder a este mensaje
#2 Santo76
09/08/2006 - 15:11 | Informe spam
Es que me gustaria que me quedara claro.

El tema de &var me quedo claro, gracias.

El tema del ?var, no se, proque he visto algun select así:
SQLEXEC(nHand1,"select codigo, nombre from ?lTabla","sqltemp") && donde
lTabla contiene el nombre de la tabla, es como si tambien devolviera su
contenido a la funcion select de Sqlexec.

I por ultimo, el que no me queda nada claro es el @, no entiendo que quieres
decir que paso el parametro por referencia, podrias explicar-me-lo un poco
mejor o con algun ejemplo. Y muchas gracias por haber respondido.
Respuesta Responder a este mensaje
#3 Alex Feldstein
10/08/2006 - 03:08 | Informe spam
On Wed, 9 Aug 2006 06:11:01 -0700, Santo76
wrote:

Es que me gustaria que me quedara claro.

El tema de &var me quedo claro, gracias.

El tema del ?var, no se, proque he visto algun select así:
SQLEXEC(nHand1,"select codigo, nombre from ?lTabla","sqltemp") && donde
lTabla contiene el nombre de la tabla, es como si tambien devolviera su
contenido a la funcion select de Sqlexec.

I por ultimo, el que no me queda nada claro es el @, no entiendo que quieres
decir que paso el parametro por referencia, podrias explicar-me-lo un poco
mejor o con algun ejemplo. Y muchas gracias por haber respondido.




No has indicado ?var como parámetro, sino por separado en tu mensaje
anterior.
En este ejemplo que das, es sólo un parámetro.

Lo mejor que puedes - y debes - hacer es leer el manual.
Especialmente lo que significa pasar valores o parámetros por valor o
por referencia. Ese es un temá básico en la escuela en computación.

En corto, en uno pasas (copias) el valor de la variable, en el otro
pasas la dirección en memoria donde se encuentra el valor asi que al
modificarlo se modifica elvalor de la variable original.



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP

Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(address munged with ROT-13)

Blog: http://alexfeldstein.blogspot.com
Website: http://www.feldstein.net
Respuesta Responder a este mensaje
#4 Santo76
10/08/2006 - 17:33 | Informe spam
Entiendo que para ti sera facil ya que lo tienes asumido y lo explicas como
si esto ya tubiera que saber-se de por si.

Yo estoy empezando y creo que esto es una parte muy importante de la
programación, y si ahora no lo entiendo bien, me estoy perdiendo algo que
sera imprescindible en un futuro.

Como quiero aprender-lo y asumir-lo a la perfección, podrias remitirme a
algún foro que hablen de esto, o algún libro en que este bien explicado, en
el cual haya ejemplos y consejos de como utilizar-lo y donde es mejor
hacer-lo?

Gracias, pero necesito que me quede claro, no es que no entienda lo que me
has dicho, creo entender que si la variable va precedida por & hace una copia
del contenido, y si va precedida por el @, pasa como un puntero que accede a
la parte de la memoria donde esta almacenado el valor de la misma y se puede
modificar.

Pero como hasta ahora solo he utilizado el &, y veo en muchas partes que se
recomienda no utilizar-lo porque es lento, ahora me cuesta entender la
utilidad y donde utilizar el @.

Gracias por tu atención.

"Alex Feldstein" escribió:

On Wed, 9 Aug 2006 06:11:01 -0700, Santo76
wrote:

>Es que me gustaria que me quedara claro.
>
>El tema de &var me quedo claro, gracias.
>
>El tema del ?var, no se, proque he visto algun select así:
>SQLEXEC(nHand1,"select codigo, nombre from ?lTabla","sqltemp") && donde
>lTabla contiene el nombre de la tabla, es como si tambien devolviera su
>contenido a la funcion select de Sqlexec.
>
>I por ultimo, el que no me queda nada claro es el @, no entiendo que quieres
>decir que paso el parametro por referencia, podrias explicar-me-lo un poco
>mejor o con algun ejemplo. Y muchas gracias por haber respondido.


No has indicado ?var como parámetro, sino por separado en tu mensaje
anterior.
En este ejemplo que das, es sólo un parámetro.

Lo mejor que puedes - y debes - hacer es leer el manual.
Especialmente lo que significa pasar valores o parámetros por valor o
por referencia. Ese es un temá básico en la escuela en computación.

En corto, en uno pasas (copias) el valor de la variable, en el otro
pasas la dirección en memoria donde se encuentra el valor asi que al
modificarlo se modifica elvalor de la variable original.



Alex Feldstein
________________________________
Microsoft Visual FoxPro MVP

Please respond in the public groups so that everybody
can benefit from the exchange.
Favor de responder en los foros públicos asi todos se benefician.
(address munged with ROT-13)

Blog: http://alexfeldstein.blogspot.com
Website: http://www.feldstein.net

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida