Mass Lenguaje de Programación (5) Acceso a Variables

Published on Author lopezLeave a comment

Anterior Post

Al fin comencé una nueva implementación de variables y su alcance en el lenguaje Mass. Mi idea es:

– Tener variables locales

– Sin necesidad de declararlas explícitamente

– Acceso al alcance “de afuera” si es necesario

La idea base es:

– Cualquier asignación a variable involucra al alcance local

Es decir, que si asigno

a = 3

en una función, esto refiere a una variable local a, en esa función. No importa si hay una variable a, externa a la función

Ver como ejemplo

https://github.com/ajlopez/Mass/blob/master/Src/Mass.Core.Tests/MachineFiles/Local.ms

# file variable
a = 1

define foo()
    a = 2 # local variable
end

foo()

La primer variable a es una variable del archivo en proceso. La variable asignada en la función foo, es una variabla local a ese entorno de función, y es distinta de la variable “de afuera”.

En cambio, si no asignamos la variable, y solamente la consultamos, no queda como variable local. Ejemplo:

https://github.com/ajlopez/Mass/blob/master/Src/Mass.Core.Tests/MachineFiles/Scope.ms

# file variable
a = 1

define foo()
   a # access file variable
end

foo()

En este caso, la función foo devuelve el valor de a “de afuera”, pues esa variable no ha sido asignada en la función en el momento de evaluar el valor de retorno.

¿Cómo modificar una variable “de afuera”, que no sea local? Bien, tema para próximo post. La idea: acceder al valor de una variable no local, tiene que ser implícito, sin necesidad de declarar nada adicional. PERO MODIFICAR su valor debe ser explícito: debemos poner algo para que se entienda “queremos modificar el valor de una variable no local”.

Nos leemos!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

Leave a Reply

Your email address will not be published. Required fields are marked *