Cómo crear nuestras propias funciones en AppleScript

Dentro de cualquier lenguaje de programación es necesario utilizar alguna característica del lenguaje que permita modularizar el código para que pueda ser reutilizado, sea más sencillo de leer y mantener y esté mejor estructurado dentro del fichero de código que lo contiene. En AppleScript esto se consigue utilizando funciones o subrutinas.

Una función o subrutina en un lenguaje de programación consiste en un bloque de código que puede ser ejecutado desde otras funciones o subrutinas. Es como un pequeño programa dentro de un programa más grande.

La ejecución de una función o subrutina puede ser modificada gracias a que podemos enviarle parámetros. Por ejemplo, imaginemos una función que calcula la suma de dos números cualesquiera. Los parámetros para dicha función serían esos dos números cualesquiera.

Las funciones o subrutinas pueden devolver un valor, por ejemplo el resultado de la suma de dos números.

Creación simple de una función o subrutina

Ya hemos visto la creación y uso de funciones y subrutinas con AppleScript en otros artículos pero ahora lo vamos a ver con más detalle.

Para crear una función o subrutina utilizamos el comando on seguido del nombre que queramos darle a nuestra subrutina. El nombre de toda subrutina en AppleScript debe acabar con los símbolos de abre y cierra paréntesis ( ) ya que entre estos paréntesis es donde irán, si son necesarios, los parámetros que pasaremos a la subrutina.

A continuación del nombre de la función deberemos ir a la siguiente línea para comenzar el bloque de código a ejecutar dentro de la subrutina y por último indicamos el fin de la subrutina con el comando end seguido del nombre de nuestra subrutina pero esta vez sin los paréntesis para parámetros.


on miFuncion()
say "Esta es mi función"
end miFuncion

Llamando a una función para ser ejecutada

Para ejecutar una función simplemente debemos llamarla con su nombre seguido de los parámetros que necesite encerrados entre paréntesis. Si no requiere ningún parámetro simplemente deberemos usar los paréntesis vacíos.

Veamos un ejemplo simple en el que desde el evento run de nuestro script llamamos a nuestra función saluda().


on saluda()
say "Hola a todos"
end saluda

on run
saluda()
end run

Pasando parámetros a nuestra función

Para pasar parámetros a una función simplemente debemos declararlos a la hora de definir nuestra función con el comando on colocando cada parámetro dentro de los paréntesis separados por el caracter coma (,).

Veamos un ejemplo muy simple de una función verbalizaSuma


on verbalizaSuma(num1, num2)
set resultado to num1 + num2
say resultado
end suma

Para poder ejecutar nuestra función deberemos llamarla indicando dos números como parámetros.

El ejemplo completo sería el siguiente:


on verbalizaSuma(num1, num2)
set resultado to num1 + num2
say resultado
end verbalizaSuma

on run
verbalizaSuma(32, 23)
end run

Devolviendo un resultado desde nuestra función

Uno de los objetivos más importantes de las subrutinas o funciones es la de calcular un resultado según los valores que se le hayan pasado como parámetros. Para ello la función nos tiene que devolver un resultado.

En AppleScript utilizamos el comando return para devolver un resultado. Hay que tener cuidado ya que cualquier código que esté después del comando return no se ejecutará. Veamos el siguiente ejemplo:


on resta(num1, num2)
return num1 - num2
say "Este mensaje nunca se leerá"
end resta

Reescribamos nuestro ejemplo de la suma para que en lugar de verbalizaSuma utilicemos una función más genérica la cual sólo calculará la suma de dos números. El ejemplo quedaría así:


on suma(num1, num2)
return num1 + num2
end suma

on run
say "El resultado de sumar 22 y 33 es " & suma(22, 33)
end run

Fijaos que la llamada a la función suma() se ha indicado como un valor más de la cadena de texto que se va a verbalizar. Esto se debe a que cualquier llamada a una función se resuelve antes que el código en el que se encuentra la llamada.

Modularizar es bueno

Gracias a la posibiilidad de crear nuestras propias subrutinas o funciones podemos crear nuestra propia librería de funciones para resolver tareas como por ejemplo saber si VoiceOver está en ejecución, enviar un correo electrónico con una sola línea de código, cambiar aspectos de la interfaz gráfica de forma más sencilla, etc. Estas subrutinas pueden ser almacenadas en un fichero de código a parte y sólo copiar y pegar en el fichero de script que estemos trabajando aquellas funciones que vayamos a utilizar. De esta forma nuestro código será más sencillo de leer y mantener.

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.