Variables locales, globales y propiedades en AppleScript

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.