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
cual es la diferencia
cual es la diferencia
- 0 error(s), 0 warning(s) FUCK YEA!
http://xapus.blogspot.com/
http://xapus.blogspot.com/
Re: cual es la diferencia
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 :)
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!
Re: cual es la diferencia
jeje claro.. ReDim en tu cabeza, para pensar en Local, y trabajar en Global.
Aunk no m Buskes, Seguro m enkontras!
Re: cual es la diferencia
No entiendo
No soy un hombre de plegarias, pero si estás en el cielo sálvame por favor Superman!
Re: cual es la diferencia
jaja nada.. perdon. es una broma. es k veia el foro muy aburrido jaja espero no me reten por esto jaja.Nahuel escribió:No entiendo
Saludos
Aunk no m Buskes, Seguro m enkontras!
- Ximorro
- Profesional del Autoit
- Mensajes: 1500
- Registrado: 10 Jul 2009, 12:35
- Ubicación: Castellón, España
Re: cual es la diferencia
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.
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)