En este manual, pueden aparecer funciones repetidas.
Lo que implica que una función puede ser usada de distintas maneras, con distintos argumentos, y obteniendo distintos resultados.
Todos estos casos se documentarán por separado.
Además, en este manual, se utilizará la siguiente tipología:
tipo_del_resultado modulo.funcion( tipo argumento, tipo argumento )
También hay módulos que utilizan "variables", que són constantes numéricas con nombre, para utilizarlas no se usarán los paréntesis.
Por ejemplo: math.pi
o math.g
Si bien Lua no es un lenguaje orientado a objetos, ofrece una manera simpática de parecerlo.
Nos ofrece la posibilidad de usar los dos puntos ":" en vez de un punto a la hora de llamar a las funciones. El uso de los dos puntos implica que como primer argumento pasará el objeto que haya antes de los dos puntos, y el resto de argumentos de manera normal.
Atención: Pero esto no funciona para todas las funciones, sólo para objetos de su mismo tipo! (Cómo?).
Ejemplos:
Módulo image:
Creamos una imagen: miimagen = image.create(10,10);
Usamos image.blit(), a esa misma imagen: miimagen:blit(0,0);
Si vemos la documentación, veremos que image.blit() tiene como primer parámetro una imagen, y luego dos coordenadas. Así que acepta de primer argumento un objeto devuelto por su mismo módulo.
Más ejemplos:
archivo = io.open("prueba.txt");
datos = archivo:read("*a");
archivo:close();
Podemos comprobar que io.read() y io.close() aceptan de primer argumento un argumento tipo "file", el mismo devuelto por io.open, de su mismo módulo.
Un último ejemplo:
texto = "abcdef";
longitud = texto:len(); -- 6
inicio = texto:sub(1,3); -- "abc"
fin = texto:sub(4); -- "def"
Véamos como de nuevo, texto es del tipo string, y las funciones string.len() y string.sub() reciben como primer argumento un argumento del tipo string.
Si aún así no os queda claro, lo podréis ir viendo en los ejemplos adjuntos a este manual, y si aún así tampoco, siempre podéis usar la manera tradicional de llamar funciones ;).
-nil (nada, vacío o nulo)
-boolean (booleano, verdadero o falso)
-number (número, entero, decimal o hexadecimal)
-string (cadena de caracteres, texto)
-function (función)
-table (tabla)
-thread (corutina, proceso)
-file (descriptor de fichero, devuelto por módulo io)
-userdata (objetos devueltos por LuaDEV)
-chunk (trózo de código, devuelto por ciertas funciones)
-int (tipo number, pero número entero, sin decimales)
-imagen (userdata devuelto por el módulo image)
-sonido (userdata devuelto por el módulo sound)
-modelo (userdata devuelto por el módulo model)
-temporizador (userdata devuelto por el módulo timer)
Añadir diálogos personalizados.
Añadir navegador.
Añadir miles de cosas en general...