Sintaxis básica de Lua

Aprender Lua es muy sencillo, ¡podemos crear nuestro primer programa en Lua!

La extensión de los archivos de código de Lua es.lua。


El primer programa en Lua

Programación interactiva

Lua ofrece un modo de programación interactiva. Podemos ingresar programas en la línea de comandos y ver el resultado de inmediato.

El modo de programación interactiva de Lua se puede habilitar con el comando lua -i o lua:

$ lua -i 
$ Lua 5.3.0  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> 

En la línea de comandos, ingresa el siguiente comando:

> print("Hello World!")

Luego presionamos Enter y el resultado es el siguiente:

> print("Hello World!")
Hello World!
>

Programación mediante scripts

Podemos guardar el código de un programa Lua en un archivo que termine en .lua y ejecutarlo; este modo se llama programación mediante scripts. Por ejemplo, guardamos el siguiente código en un archivo de script llamado hello.lua:

print("Hello World!")
print("www.example.com")

Usa lua para ejecutar el script anterior; el resultado es:

$ lua hello.lua
Hello World!
www.example.com

También podemos modificar el código como se muestra a continuación para ejecutar el script (agregando al principio: #!/usr/local/bin/lua):

Ejemplo

#!/usr/local/bin/lua

print("Hello World!")
print("www.example.com")

En el código anterior, especificamos el intérprete de Lua en el directorio /usr/local/bin. Al agregar el signo #, el intérprete lo ignorará. A continuación, agregamos permisos de ejecución al script y lo ejecutamos:

./hello.lua 
Hello World!
www.example.com

Comentarios

Comentario de una sola línea

Un comentario de una sola línea comienza con dos guiones--Al inicio, el contenido que le sigue será ignorado por el intérprete.

--

Los comentarios de una sola línea se utilizan generalmente para una breve explicación o marcado del código.

Comentario de varias líneas

Un comentario de varias líneas comienza con--[[y termina con]]y es adecuado cuando se necesita explicar grandes bloques de código.

--[[
 comentario multilínea
 comentario multilínea
 --]]

Lua no admite comentarios anidados, lo que significa que dentro de un comentario de varias líneas no se puede anidar otro comentario de varias líneas. Por ejemplo, el siguiente código no es válido:

--[[
Este es un comentario multilínea
--[[
Comentario multilínea anidado (esto es ilegal)
]]
]]

Identificadores

Los identificadores de Lua se utilizan para definir una variable, una función u otros elementos definidos por el usuario. Un identificador comienza con una letra de la A a la Z o de la a a la z, o con un guion bajo_y va seguido de cero o más letras, guiones bajos o dígitos (0 a 9).

Es mejor no usar identificadores que comiencen con guion bajo y letras mayúsculas, porque las palabras reservadas de Lua también tienen esa forma.

Lua no permite usar caracteres especiales como@, $, y%para definir identificadores. Lua es un lenguaje de programación que distingue entre mayúsculas y minúsculas. Por lo tanto, en Lua, Ejemplo y ejemplo son dos identificadores diferentes.

A continuación se enumeran algunos identificadores correctos:

mohd         zara      abc     move_name    a_123
myname50     _temp     j       a23b9        retVal

Palabras clave

A continuación se enumeran las palabras clave reservadas de Lua. Las palabras clave reservadas no pueden usarse como constantes, variables u otros identificadores definidos por el usuario:

and break do else
elseif end false for
function if in local
nil not or repeat
return then true until
while goto

Por convención general, los nombres que comienzan con un guion bajo seguido de una serie de letras mayúsculas (como _VERSION) están reservados para las variables globales internas de Lua.


Variables globales

Por defecto, las variables siempre se consideran globales.

Las variables globales no necesitan declaración; al asignar un valor a una variable se crea esta variable global. Acceder a una variable global no inicializada tampoco produce un error, pero el resultado obtenido es: nil.

> print(b)
nil
> b=10
> print(b)
10
>

Si deseas eliminar una variable global, solo tienes que asignarle el valor nil.

b = nil
print(b)      --> nil

Así, la variable b parece como si nunca se hubiera utilizado. En otras palabras, una variable existe si y solo si no es igual a nil.

Otras extensiones