{"id":543,"date":"2018-06-04T09:00:54","date_gmt":"2018-06-04T08:00:54","guid":{"rendered":"http:\/\/www.programaraciegas.net\/?p=543"},"modified":"2018-06-02T06:46:33","modified_gmt":"2018-06-02T05:46:33","slug":"variables-locales-globales-y-propiedades-en-applescript","status":"publish","type":"post","link":"https:\/\/programaraciegas.net\/?p=543","title":{"rendered":"Variables locales, globales y propiedades en AppleScript"},"content":{"rendered":"<p>En otros art\u00edculos hemos visto las variables en AppleScript y c\u00f3mo manipularlas.<\/p>\n<p>Las variables en AppleScript pueden tener un \u00e1mbito local o global. Esto significa que una variable puede ser utilizada dentro de la funci\u00f3n donde ha sido declarada (ambito local) o puede ser utilizada en cualquier parte de nuestro script de AppleScript (\u00e1mbito global).<\/p>\n<p>Todas las variables globales y locales son reinicializadas cuando se ejecuta un script por lo que en las variables s\u00f3lo podremos almacenar informaci\u00f3n que vaya a ser utilizada en el momento de ejecutar ese script.<\/p>\n<h2>Declaraci\u00f3n de variables locales y globales<\/h2>\n<p>Las variables locales no es necesario declararlas con anterioridad ya que por defecto cualquier variable utilizada a trav\u00e9s del comando <strong>set<\/strong> es declarada como local.<\/p>\n<p>En cambio las variables globales deben ser declaradas al comienzo del script utilizando el comando <strong>global<\/strong>. Un ejemplo puede ser:<\/p>\n<p><code><br \/>\n-- Declaramos la variable<br \/>\nglobal miVariableGlobal<\/code><\/p>\n<p>on run<br \/>\n&#8212; Usamos la variable global<br \/>\nset miVariableGlobal to 1<br \/>\nend run<\/p>\n<h2>Persistencia de informaci\u00f3n en AppleScript<\/h2>\n<p>A veces podemos necesitar guardar informaci\u00f3n para la ejecuci\u00f3n de un AppleScript entre una y la siguiente ejecuci\u00f3n. Para este motivo AppleScript nos proporciona un tipo especial de variables: <em>las propiedades<\/em><\/p>\n<p>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:<\/p>\n<p><code><br \/>\n-- Declaramos la variable<br \/>\nglobal miVariableGlobal<br \/>\n-- Declaramos la propiedad<br \/>\nproperty propertyVar : 1<br \/>\n<\/code><\/p>\n<p>A la hora de manipular una propiedad se hace al igual que con una variable utilizando el comando <strong>set<\/strong><\/p>\n<h2>Ejemplo<\/h2>\n<p>Vamos a ver un ejemplo simple en el que veremos c\u00f3mo se comportan las variables locales, globales y propiedades con cada nueva ejecuci\u00f3n del script. Para ello abre el editor de scripts de Macos, escribe el siguiente c\u00f3digo y utiliza la opci\u00f3n <em>run<\/em> unas cuantas veces para ver c\u00f3mo varia la informaci\u00f3n con cada nueva ejecuci\u00f3n.<\/p>\n<p><code><br \/>\n-- Las propiedades y variables globales se declaran al comienzo del script<\/code><\/p>\n<p>global globalVar<br \/>\nproperty propertyVar : 1<\/p>\n<p>on run<br \/>\n&#8212; Inicializamos los valores<br \/>\nset localVar to 1<br \/>\nset globalVar to 1<br \/>\nset localVarText to localVar as text<br \/>\nset globalVarText to globalVar as text<br \/>\nset propertyVarText to propertyVar as text<\/p>\n<p>&#8212; Preparamos el texto a verbalizar<br \/>\nset result to \u00abEl valor local es \u00bb &amp; localVarText &amp; \u00ab, el global es \u00bb &amp; globalVarText &amp; \u00bb y el valor de propiedad es \u00bb &amp; propertyVarText<br \/>\n&#8212; Verbalizamos el resultado<br \/>\nsay result<\/p>\n<p>&#8212; Actualizamos los valores para la siguiente ejecuci\u00f3n<br \/>\nset localVar to localVar + 1<br \/>\nset globalVar to globalVar + 1<br \/>\nset propertyVar to propertyVar + 1<br \/>\nend run<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En otros art\u00edculos hemos visto las variables en AppleScript y c\u00f3mo manipularlas. Las variables en AppleScript pueden tener un \u00e1mbito local o global. Esto significa que una variable puede ser utilizada dentro de la funci\u00f3n donde ha sido declarada (ambito local) o puede ser utilizada en cualquier parte de nuestro script de AppleScript (\u00e1mbito global). &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/programaraciegas.net\/?p=543\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abVariables locales, globales y propiedades en AppleScript\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,6],"tags":[83,282,281,283,268],"class_list":["post-543","post","type-post","status-publish","format-standard","hentry","category-applescript","category-programacion","tag-applescript-2","tag-global","tag-local","tag-propiedad","tag-variables"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=543"}],"version-history":[{"count":0,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=\/wp\/v2\/posts\/543\/revisions"}],"wp:attachment":[{"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programaraciegas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}