Resumen De Lua

Páginas: 5 (1024 palabras) Publicado: 7 de junio de 2012
print() para imprimir a stdout
= substituye a print solo en el interprete

Asignacion multiple

var1,var2,var3 = val1, val2, val3
no se puede hacer var1, var2 = 143

Strings
se puede usar "" '' o si queres [[]] para strings multilinea
los caracteres de escape no funcionan y los saltos de linea en el editor se toman como saltos de linea
si el primer caracter es un salto de linea, loignora

Esto [=[ ]=] sirve para agregar corchetes pero entonces el problemas son los signos de igual
podes usar multiples caracteres de igual y listo

dentro del print podes usar usar la \ para continuar escribiendo en el guion de abajo, sirve como newline literalmente tenes que agregar un enter al lado

si escapas numeros con \ tipo \123 los toma como en base 10
si escapas \0 lo puedetomar como el fin del string (dependiendo de C)

Boleanos
true, false
print y alguna expresion logica devuelve true y false

<
>
>=
5
el problema es que cuenta bytes para medir la longitud y si utilizas utf8 donde algunos caracteres tienen 2 bytes cagaste
ademas tambien toma en cuenta el caracter null si esta metido adentro del string
en lua > "dos"

tambien si tenes un valor sin keydentro de una tabla es indexado a partir del 1 con el resto de los valores sin key

si tenes una funcion que es asignada a una tabla sin key, si la key es la primera solo el primer valor que devuelve la funcion se agrega a la tabla
si es el ultimo valor de la tabla se agregan todos los valores que devuelve la funcion a la tabla


podes usar el # para devolver el tamaño de un array, solocuenta aquellos valores indexados y no los que tienen como key un valor que no es un num
print(#tabla)

si existen nils en medio de la tabla se pudre todo y # impredeciblemente


----------------for generico

es el for que recorre una tabla, se distingue del for numerico por que tiene la palabra in en su estructura

ipairs devuelve pares de valores de la tabla y se corta cuando llega a unnil, y solo sirve para arrays
si existen claves que no son numeros las ignora
for key, valor in ipairs(tabla) do
algo
end

si usas pairs atraviesa todo tipo de valores e ignora los nils
tambien recorre la tabla en un order aleatorio

el for de 5.0 parece que funciona diferente en el scope atravie

----------------------------funciones de tabla
table.sort(tabla, funcion de comparacion)ordena la tabla modificandola de acuerdo a lo que devolverian < y >, podes opcionalmente pasar una funcion que permita comprars
si la tabla tiene elementos que no serian los de un array los ignora


table.insert(tabla, [posicion], elemento)

Pone al final de la tabla determinado elemento
posicion es opcional

table.concat({array_de_strings_o_numeros}, [separador],[comienzo], [final] )devuelve un string donde concatena el array que pasas como argumento y separados por separador que es opcional
el 3er parametro es apartir de donde queres empezar a concatenar y final donde queres que termine
nil tira abajo la funcion y solo concatena valores indexados como array

table.remove(tabla, [posicion])
quita el ultimo elemento de la taba, o si le pasas posicion ese elementotable.maxn(tabla)
devuelve el numero de elementos indexados, omitiendo los nils
toma en cuenta ademas de los indices comunes aquellos indices fraccionados

-----------syntactic sugar

Ejemplos de 0409 para arriba

Obj:Fun(Val)

seria lo mismoque

Obj.Fun(Obj, Val)

Si queres definir funciones asi se complica la cosa
function T:Fun(A)

seria

function T.Fun(self, A)

podes accedera self que se refiere al objeto en si

----------------parametros multiples vararg
si queres pasarle multiples parametros a unafuncion podes hacerlo asi

function fun(...)
codigo
end

tambein podes aceptar parametros comunes y al final variables

function fun(var1, var2, ...)
cod
end

los vararg no pueden ser utilizados como upvalues es decir, ser accedidos por una funcion que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Resumen Lua
  • Lua
  • Lua
  • Luae
  • A orixe da lúa
  • Lua Do Senegal
  • SOP U2 EA LUAE
  • Lua Maeasd

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS