Bienvenidos sean a este post, hoy hablaremos sobre tres temas basicos en Lua y en cualquier lenguaje de programacion como son los de los titulos, para ello comencemos primero con los Chunks

Chunks

Podemos decir que cada pieza de codigo que ejeuctamos en LUA es llamada Chunk, es decir cada archivo, linea en modo interactivo, secuencia de comando o declaraciones ejecutadas y a diferencia de otros lenguajes el uso del punto y coma (;) como indicador de final de linea no es necesario pero si es recomendable para diferenciar una secuencia de otra, veamos las formas validas de Chunk:

a=1
b=a * 2

a=1;
b=a * 2;

a=1; b=a * 2

a=1   b=a * 2 // No recomendable pero valido 
Anuncios

Como vimos en el post anterior existe un modo interactivo el cual nos permitira trabajar sin un archivo y todas las lineas que ingresemos seran procesados, a esto tambien se lo considera Chunk, pero no todas las lineas seran interpretadas a raja tabla porque si detecta que no es un Chunk concreto seguira esperando hasta que el mismo se complete, esto puede derivar en Chunks de varios MegaBytes pero no se preocupen porque el interprete sabra leerlo correctamente, veamos un ejemplo a continuacion.

Primero vamos a crear un archivo llamado lib1.lua y le agregaremos el siguiente codigo:

lib1.lua

#! /usr/bin/lua5.3

function norm (x, y)
        return (x^2 + y^2)^0.5
end

function twice(x)
        return 2*x
end

Para este caso creamos dos funciones, no se preocupen mas adelante hablaremos sobre las funciones pero por ahora es simplemente esto, donde la primera recibira dos datos y devolvera la operacion matematica entre los dos valores informados (x e y) para la segunda funcion devolvera el valor informado multiplicado por 2, con esto creado deberemos proceder a cargar esta libreria pero lo haremos directamente en modo interactivo, para ello solamente deben ejecutar el interprete sin ninguna opcion y nos quedara el siguiente prompt:

tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3
Lua 5.3.3  Copyright (C) 1994-2016 Lua.org, PUC-Rio
>

En ella ingresaremos las siguientes funciones:

tinchicus@dbn001dsk:~/lenguaje/lua$ lua5.3
Lua 5.3.3  Copyright (C) 1994-2016 Lua.org, PUC-Rio
>dofile("lib1.lua")
>n = norm(3.4, 1.0)
>print(twice(n))
7.0880180586677
>

Debemos ingresar linea por linea por medio de Enter, la primera sera la encargada de cargar nuestra “libreria”, la segunda linea usara la funcion norm de la libreria con los valores informados y los almacenara en n y por ultimo llamara al metodo twice con el valor almacenado en n y lo mostrara en pantalla como se ve en el ejemplo, observen como en ninguno de los dos primeros casos al no solicitar ninguna devolucion, la funcion fue ejecutada pero no vimos ningun resultado salvo en el tercer caso donde por medio de print nos devolvio el resultado de twice, pasemos a nuestro siguiente tema como son los identificadores.

Identificadores

Los identificadores son los nombres que se usaran para identificar nuestras variables, funciones, expresiones, etc, estos pueden ser de cadenas, letras, numeros y guiones bajos (_) tambien conocido como underscores, veamos algunos ejemplos:

adam
i110
_martin
longIdentifier11

Como pueden ver se puede usar cualquier combinacion pero algunas combinaciones en general no son recomendables como:

  • Comenzar un identificador con numeros (110iloco)
  • Usar caracteres especiales (@,#,ñ,etc)
  • Usar solamente numeros
  • Usar el guion bajo y todas las letras en mayusculas (_INPUT)
Anuncios

Esta ultima excepcion es por el hecho que mas adelante veremos el tipo de uso que tiene Lua para este tipo de identificadores, a continuacion veremos algunas palabras reservadas:

andbreakdoelseelseif
endfalseforfunctionif
inlocalnilnotor
repeatreturnthentrueuntil
while

Estas palabras son propias del sistema y no pueden ser utilizadas como identificadores, en general nosotros al hablar en otro idioma al ingles no tenemos muchas dificultades con estas palabras pero las personas de habla anglosajona pueden tenerlos, nuestro ultimo comentario sera sobre las variables globales.

Variables globales

Las variables globales no necesitan ser declaradas al inicio como en otros lenguajes y estas solamente necesitan asignarse un valor, muy similar a Javascript, por ejemplo nosotros podemos utilizar una variable sin declarar pero en este caso tendra un valor nil hasta que le asignemos uno:

print(b) -> Devuelve nil.
b = 10
print(b) -> Devuelve 10.

En raras circunstancias necesitamos borrar las variables globales para ser usada como locales, una variable local es una variable propia de una funcion y solamente usada en dicha funcion, para ello solamente debemos asignarle el valor nil por lo que esa variable pasara a ser inexistente para Lua, ya que podriamos decir que Lua solo utiliza variables que no poseen el valor nil.

Anuncios

En resumen, hoy hemos visto que es un Chunk, como puede ser escrito, como funciona y un ejemplo, despues hablamos sobre identificadores, tipos validos, tipos invalidos, palabras reservadas que no pueden ser usadas como identificadores, por ultimo hablamos de las variables globales, como se definen, como se pueden eliminar, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00