En otros artículos hemos visto las variables en AppleScript y cómo manipularlas.
Las variables en AppleScript pueden tener un ámbito local o global. Esto significa que una variable puede ser utilizada dentro de la función donde ha sido declarada (ambito local) o puede ser utilizada en cualquier parte de nuestro script de AppleScript (ámbito global).
Todas las variables globales y locales son reinicializadas cuando se ejecuta un script por lo que en las variables sólo podremos almacenar información que vaya a ser utilizada en el momento de ejecutar ese script.
Declaración de variables locales y globales
Las variables locales no es necesario declararlas con anterioridad ya que por defecto cualquier variable utilizada a través del comando set es declarada como local.
En cambio las variables globales deben ser declaradas al comienzo del script utilizando el comando global. Un ejemplo puede ser:
-- Declaramos la variable
global miVariableGlobal
on run
— Usamos la variable global
set miVariableGlobal to 1
end run
Persistencia de información en AppleScript
A veces podemos necesitar guardar información para la ejecución de un AppleScript entre una y la siguiente ejecución. Para este motivo AppleScript nos proporciona un tipo especial de variables: las propiedades
Las propiedades, como las variables globales, se declaran al comienzo del script pero a diferencia de las variables globales, al declararlas es necesario indicar un valor inicial. Por ejemplo:
-- Declaramos la variable
global miVariableGlobal
-- Declaramos la propiedad
property propertyVar : 1
A la hora de manipular una propiedad se hace al igual que con una variable utilizando el comando set
Ejemplo
Vamos a ver un ejemplo simple en el que veremos cómo se comportan las variables locales, globales y propiedades con cada nueva ejecución del script. Para ello abre el editor de scripts de Macos, escribe el siguiente código y utiliza la opción run unas cuantas veces para ver cómo varia la información con cada nueva ejecución.
-- Las propiedades y variables globales se declaran al comienzo del script
global globalVar
property propertyVar : 1
on run
— Inicializamos los valores
set localVar to 1
set globalVar to 1
set localVarText to localVar as text
set globalVarText to globalVar as text
set propertyVarText to propertyVar as text
— Preparamos el texto a verbalizar
set result to «El valor local es » & localVarText & «, el global es » & globalVarText & » y el valor de propiedad es » & propertyVarText
— Verbalizamos el resultado
say result
— Actualizamos los valores para la siguiente ejecución
set localVar to localVar + 1
set globalVar to globalVar + 1
set propertyVar to propertyVar + 1
end run