LOCAL

Sinopsis
LOCAL nombre_de_variable
LOCAL lista_de_nombres
(LOCAL nombre_de_variable1 nombre_de_variable2 ...)
Descripción

Crea variables que son locales al procedimiento en que se encuentran. LOCAL acepta como argumentos una o más palabras o una lista de palabras. Se crea una variable por cada una de los argumentos, con el nombre de esa palabra. Las variables en Logo tienen un ámbito dinámico; una variable local en un procedimiento sólo está disponible en los subprocedimientos ejecutados por ese procedimiento. Las variables creadas con LOCAL no tienen valor inicial; les debes asignar un valor (por ejemplo, con HAZ) antes de que tu programa intente leer su valor.

Variables locales tienen una interacción extraña con las retrollamadas asíncronas, tales como las que se planifican con PONTEMPORIZADOR o HABILITATECLADO. Cuando se ejecutan una retrollamada asíncrona, interrumpe cualquier procedimiento que está ejecutando (si hay alguno). Cualquier variable que es local al procedimiento interrumpido está disponible a la retrollamada como si fuera un subprocedimiento. Por lo tanto, cuando un procedimiento que planifica una retrollamada está interrumpido por esa misma retrollamada, entonces todos los variables locales del procedimiento planificador están disponibles a la retrollamada. Sin embargo, si la retrollamada asíncrona se ejecutan después de que el procedimiento planificador ha terminado, entonces los variables que fueran locales a ese procedimiento no están disponibles a la retrollamada.

Ejemplo
PARA SIN.LOCAL
  HAZ "bar 1
  ESCRIBE :bar
FIN

SIN.LOCAL
1

MUESTRA :bar
1

PARA CON.LOCAL
  LOCAL "xyz
  HAZ "xyz 1
  ESCRIBE :xyz
FIN

CON.LOCAL
1

MUESTRA :xyz
xyz no tiene un valor todavía

SourceForge.net Logo