Conceptos básicos Lua

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:
TipoDescripción
nilNil es el tipo del valor nil, cuya principal propiedad es ser diferente de cualquier otro valor; normalmente representa la ausencia de un valor útil.
booleanEs el tipo de los valores false (falso) y true (verdadero). Tanto nilcomo false hacen de una condición falsa, cualquier otro valor la hace verdadera.
numberRepresenta números reales (en coma flotante y de doble precisión).
stringRepresenta una cadena de caracteres
functionLua puede llamar (y manejar) funciones escritas en Lua y funciones escritas en C
userdataEl 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.
threadEl 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.
tableEl 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).

Video


Comentarios

Entradas más populares de este blog

SAFE MODE en PS Vita