Conceptos básicos Lua
Conceptos básicos Lua
Este artículo describe los conceptos básicos sobre la sintaxis y la semántica de Lua como lenguaje de programación. En otras palabras, esta sección describe qué elementos (tokens) son válidos, cómo deben combinarse y qué significa su combinación.
Comentarios
Tal vez una de las cosas más usadas al momento de desarrollar son los comentarios, que son aquellas líneas que no se incluyen en la lógica del programa y sirven para documentar el código en el que se trabaja
Comentarios en línea
En lua los comentarios de línea comienzan por doble guion (
--
)
-- esto es un comentario
-- esto es un comentario en la siguiente línea
Comentaros en líneas múltiples
General mente se utilizan para para deshabilitar temporalmente trozos de código al ponerlos como comentario, su sintaxis de inicio es
--[[
y termina hasta encontrar un cierre ]]
.
--[[ esto es un
Comentario en
Múltiples
Líneas ]] print("esto ya no es un comentario")
Convenciones básicas
Lua tienes unas convenciones léxicas básicas que nos servirán al momento de escribir código.
Los nombres (también llamados identificadores) en Lua pueden ser cualquier cadena de caracteres validos, sólo con letras, minúsculas, mayúsculas puede contener números, caracteres de subrayado (underscore). Algo muy importante es que nunca pueden comenzar por un dígito a contener alguno de los siguiente símbolos.
+
-
*
/
^
#
==
~=
<=
>=
<
>
=
(
)
{
}
[
]
;
:
,
.
..
...
Aunque los anteriores caracteres no son reservados, se deben tener en cuenta al momento de nombrar un identificador, más adelante veremos en detalle el uso de estos símbolos. Algunos ejemplos de identificadores serían los siguientes.
identificador1 --valido
IDENTIFICADOR2 --valido
Identificador_3 --valido
idenTiFIca_dor_4 --valido
5identificador --no es valido
.identficador6 --no es valido
identificador 7 --no es valido
La definición de caracteres validos, depende de la implementación local actual del sistema, cualquier carácter considerado alfabético en el sistema local puede ser usado en un identificador.
Palabras reservadas
Como pasa en todo lenguaje, Lua tiene un conjunto de palabras reservadas las cuales no pueden usarse cono variables de programa
and
end
in
repeat
break
false
local
return
do
for
nil
then
else
function
not
true
elseif
if
or
until
while
En Lua las letras mayúsculas y las minúsculas se consideran diferentes:
and
es una palabra reservada, pero And y AND son dos nombres diferentes y por lo tanto son válidos. Como convención, los nombres que comienzan por un subrayado seguido por letras en mayúsculas (como _VERSION
) están reservados para uso como variables globales internas de Lua.
Es decir que si ejecutamos _VERSION nos devolverá como resultado la versión que teneos instalada de lua, pero ya veremos esto más en detalle.
Valores y tipos
Lua es un lenguaje dinámicamente tipado. Esto significa que las variables no tienen tipos; sólo tienen tipo los valores. No existen definiciones de tipo en el lenguaje. Todos los valores almacenan su propio tipo.
Todos los valores en Lua son valores de primera clase. Esto significa que todos ellos pueden ser almacenados en variables, pueden ser pasados como argumentos de funciones, y también ser devueltos como resultados.
Tipos básicos
Existen ocho tipos básicos en Lua:
Tipo | Descripción |
---|---|
nil | Nil es el tipo del valor nil , cuya principal propiedad es ser diferente de cualquier otro valor; normalmente representa la ausencia de un valor útil. |
boolean | Es el tipo de los valores false (falso) y true (verdadero). Tanto nil como false hacen de una condición falsa, cualquier otro valor la hace verdadera. |
number | Representa números reales (en coma flotante y de doble precisión). |
string | Representa una cadena de caracteres |
function | Lua puede llamar (y manejar) funciones escritas en Lua y funciones escritas en C |
userdata | El tipo userdata se incluye para permitir guardar en variables de Lua datos arbitrarios en C. Este tipo corresponde a bloques de memoria y no tienen asociadas operaciones predefinidas en Lua, excepto la asignación y el test de identidad. Los valores de este tipo no pueden ser creados o modificados en Lua, sino sólo a través de la API de C. Esto garantiza la integridad de los datos propiedad del programa anfitrión. |
thread | El tipo thread representa procesos de ejecución y es usado para implementar co-rutinas (esto lo veremos más adelante). No deben confundirse los procesos de Lua con los del sistema operativo. Lua soporta co-rutinas en todos los sistemas, incluso en aquéllos que no soporten procesos. |
table | El tipo table (tabla) implementa arrays asociativos, esto quiere decir, arrays que pueden ser indexados no sólo con números, sino también con cualquier valor (excepto nil ). Las tablas pueden ser heterogéneas, ya que pueden contener valores de todos los tipos (otra vez excepto nil ). Las tablas son el único mecanismo de estructuración de datos en Lua; pueden ser usadas para representar arrays ordinarios, tablas de símbolos, conjuntos, registros, grafos, árboles, etc. Para representar registros Lua usa el nombre del campo como índice. El lenguaje soporta esta representación haciendo la notación b.nombre equivalente a b["nombre"]. Existen varias maneras convenientes de crear tablas en Lua (pero lo veremos más adelante). |
Comentarios
Publicar un comentario