Variables en AppleScript

AppleScript, al igual que en otros lenguajes de programación, nos permite utilizar variables para almacenar y manipular información.
Su uso es muy sencillo. Para declarar y asignar un valor a una variable debemos seguir la siguiente sintaxis:

set nombreDeVariable to valorParaLaVariable

Veamos un ejemplo simple:


on run
set mensaje to "Hola mundo!"
say mensaje
end run

Para reasignar el valor de una variable se sigue la misma sintaxis. En la asignación podemos realizar encadenamiento de cadenas de texto, operaciones matemáticas, etc.

Veamos un ejemplo en la que asignamos el valor 1 a la variable valor, pronunciamos su valor, reasignamos el valor de la variable al valor que tenía antes más una unidad y volvemos a pronunciarlo:


on run
set valor to 1
say valor
set valor to valor + 1
say valor
end run

Problemas de formatos y tipos

Las variables pertenecen a distintos formatos (texto, números enteros, números decimales, estructuras de datos, etc) y formatos (UTF-8, UTF-16, Unicode, etc). Si intentamos manipular variables entre si con tipos o formatos distintos podemos obtener un error. Por ejemplo, la función say, que pronuncia un texto, espera que le pasemos una variable de texto o de números enteros.

Veamos un ejemplo en el que intentamos hacer un script para que nos pronuncie la fecha de hoy:


on run
set fecha to current date
say fecha
end run

Si intentamos ejecutarlo obtendremos el siguiente mensaje de error: No es posible convertir date «sábado 18 de agosto de 2012 09:44:04» en tipo «class utf8».

Para solucionar este problema deberemos convertir el valor de fecha, que está en el formato de fecha del sistema, a un valor de cadena de texto.

Para convertir el valor de una variable a otro formato debemos realizar una conversión. La conversión en appleScript sigue la siguiente sintaxis:

( variable as tipoAConvertir )

Necesitamos convertir el tipo fecha de la variable fecha a un tipo de cadena de texto. El ejemplo quedaría así:


on run
set fecha to current date
set fechaEnTexto to (fecha as text)
say fechaEnTexto
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.