cual es la diferencia

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
xapu
Hacker del Foro
Mensajes: 82
Registrado: 12 Dic 2009, 15:42

cual es la diferencia

Mensaje por xapu »

se que local es para usarla solo dentro de la funcion y global en toda la script, pero dim?
alguien me podria decir alguna diferencia mas entre dim, global, local etc... ? eske nunca me a kedado claro del todo
- 0 error(s), 0 warning(s) :smt098 FUCK YEA!
http://xapus.blogspot.com/
Avatar de Usuario
Nahuel
Hacker del Foro
Mensajes: 194
Registrado: 27 Jun 2007, 23:32
Ubicación: Argentina
Contactar:

Re: cual es la diferencia

Mensaje por Nahuel »

Si alguna vez programaste en algún otro lenguaje (C, por ejemplo) lo sabrías sin dudas :P

Autoit tiene una forma muy... particular de tratar las variables. Es decir, uno no necesita especificar qué tipo de variable está declarando (es más, ni siquiera necesita uno declararla! Basta con iniciarla en un valor) sino que ésta es "declarada" de acuerdo al tipo de valor que se le asigna y el lugar del código en que fue asignada.

En fin, si declarás la variable de forma Global significa que dicha variable puede ser usada y modificada en cualquier parte del código. Como vos dijiste, usando Local, la variable sólo se podrá usar dentro de la función en la que fue declarada. Una vez que la función termina, la variable se "destruye". Pero no es necesario que especifiques esto, AutoIt lo hace por defecto. Es decir, si declarás una variable (sin especificar global, local, etc dentro de una función ésta se crea con el scope local por defecto). Estas palabras sirven, básicamente, para poder declarar nuestras variables con anticipación sin necesidad de asignarles un valor inicial y así evitar errores de sintáxis o, si se quiere, para declarar una variable en forma global dentro de una funcuión, por ejemplo (algo poco recomendable tal vez).
Dim es de dimentional, para declarar arreglos, por ejemplo. También está Const, para variables constantes. Si se declara una variable con el scope Const y luego se intenta modificar su contenido, Autoit nos daría error.

En fin, sirven para ayudarnos a mantener el código coherente, prolijo y eficiente :)
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
Avatar de Usuario
gna08
Hacker del Foro
Mensajes: 379
Registrado: 27 Sep 2008, 18:51
Ubicación: Cordoba, Argentina

Re: cual es la diferencia

Mensaje por gna08 »

jeje claro.. ReDim en tu cabeza, para pensar en Local, y trabajar en Global. :smt026 :smt026
:smt007
Aunk no m Buskes, Seguro m enkontras!
Avatar de Usuario
Nahuel
Hacker del Foro
Mensajes: 194
Registrado: 27 Jun 2007, 23:32
Ubicación: Argentina
Contactar:

Re: cual es la diferencia

Mensaje por Nahuel »

No entiendo :smt017
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
Avatar de Usuario
gna08
Hacker del Foro
Mensajes: 379
Registrado: 27 Sep 2008, 18:51
Ubicación: Cordoba, Argentina

Re: cual es la diferencia

Mensaje por gna08 »

Nahuel escribió:No entiendo :smt017
jaja nada.. perdon. es una broma. es k veia el foro muy aburrido :smt022 jaja espero no me reten por esto jaja.
Saludos :smt021
Aunk no m Buskes, Seguro m enkontras!
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: cual es la diferencia

Mensaje por Ximorro »

Por especificar:
Dim se usa sólo para matrices, pero con ellas también se puede usar Local o Global, así que Dim está desaconsejado por los propios creadores de AutoIt, supongo que se mantiene por cuestiones de compatibilidad con versiones anteriores.

Eso de que es automático lo de "local" y "global" es cierto, pero puede dar problemas si usas una variable en una función creyendo que es local... y resulta que sin darte cuenta estás usando un nombre que ya se está utilizando en el ámbito global. ¡Entonces estarías usando la global!

Si explícitamente la declaras como Local, usarás la local aunque haya otra global, y no tocas la "de fuera".

Yo siempre uso las inicializaciones Global y Local y la opción MustDeclareVars, así me detecta algunos errores de tipografía que de otra manera se me pasarían por alto.

Eso sí, usar Local fuera de funciones no tiene efecto, siguen siendo globales, no locales al programa principal.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
Responder