As Livrarias de Lua
A livraria básica de matemática disponibilizada por lua:
math.abs(x) | Retorna o valor absoluto de x |
math.mod(x,y) | É um modulo que subtrai o valor de y em x até que não seja mais possível sua subtração [y <= x]. |
math.floor(x) | Arredonda para o valor inteiro menor e mais próximo. |
math.ceil(x) | Arredonda para o valor inteiro maior e mais próximo. |
math.min(args) | Retorna o menor valor declarado nos argumentos. |
math.max(args) | Retorna o maior valor declarado nos argumentos. |
math.random(x,y) | Retorna qualquer um dos valores entre x e y. |
Obs: Existem mais funções na biblioteca de matemática disponibilizada por lua, mas não iremos tratar sobre elas por serem funções exponenciais e muito especifica a área da trigonometria.
A livraria de tabelas.
table.insert(t, [i,] v) | Insere o valor v na posição (index) i, caso seja declarada [o valor padrão é o ultimo valor da tabela], dentro da tabela t. |
table.remove(t [,i]) | Remove o elemento na tabela t da posição i, caso seja declarada; se não for, ele irá remover o ultimo valor da tabela. |
table.maxn(t) | Retorna o maior valor de index existente na tabela, ou zero, caso não tenha nenhum index numérico. |
table.sort(t [,cf]) | Ordena os index dos elementos da tabela usando uma função de comparação - função essa que pode ser omitida: function cf(e1, e2) [default: ' < '] |
table.concat(t [,s [,i [,j]]]) | Retorna uma string criada pela concatenação dos elementos da tabela desde a posição t[i] até t[j] [default: i =1 , j = #t] separados pela string s; retorna uma string vazia se não existir elementos para serem concatenados ou se i > j. |
Exemplos da livraria matemática
math.abs(
print(math.abs(5/8)) >> 0.625
math.mod(x,y):
print(math.mod(20,8)) >> 4 – valor restante >> 20-8 = 12 >> 12-8 = 4 << quatro não pode ser mais subtraído por 8.
print(math.mod(8,3) >> 2 – 8-3 = 5 >> 5-3 = 2
print(math.mod(9,4)) >> 1 – 9-4 = 5 >> 5-4 = 1
print(math.mod(10,2)) >> 0 – 10-2 = 8 >> 8-2 = 6 >> 6-2 = 4 >> 4-2 = 2 >> 2-2 = 0
math.floor(
print(math.floor(1.99)) >> 1
print(math.floor(1.1)) >> 1
print(math.floor(2.00001)) >> 2
math.ceil(
print(math.ceil(1.99)) >> 2
print(math.ceil(1.49)) >> 2
print(math.ceil(1.00001) >> 2
print(math.ceil(0.99999)) >> 1
math.min(args):
print(math.min(100,50,2,1,0,5)) >> 0
print(math.min(9,8,7,6,5,4)) >> 4
math.max(args):
print(math.max(100,50,2,1,0,5)) >> 100
print(math.max(9,8,7,6,5,4)) >> 9
math.random(x,y):
print(math.random(1,10)) >> pode ser qualquer numero entre 1 e 10.
print(math.random(-10,-1)) >> aceita valores negativos, mas ele tem que iniciar do valor negativo maior para o menor (sempre em direção ao zero).
Exemplos da livraria de tabelas
table.insert(t, [i,] v): com uso do index.
str = {}
table.insert(str,1,"oi")
print(str[1]) >> oi
str = {}
table.insert(str,1,"oi")
table.insert(str,2,"ola")
print(str[1]) >> oi
print(str[2]) >> ola
str = {}
table.insert(str,1,"oi")
table.insert(str,3,"ola")
print(str[1]) >> oi
print(str[2]) >> nil
str = {}
table.insert(str,1,"oi")
table.insert(str,1,"ola")
print(str[1]) >> ola
table.insert(t, [i,] v): sem uso do index.
str = {}
table.insert(str,"oi")
print(str[1]) >> oi
str = {}
table.insert(str,"oi")
table.insert(str,"ola")
print(str[1]) >> oi
print(str[2]) >> ola
table.remove(t [,i]): com uso do index.
str = {[1] = 'oi'}
print(str[1]) >> oi
table.remove(str,1)
print(str[1]) >> nil
str = {[1] = 'oi', [2] = "ola"}
table.remove(str,1)
print(str[1]) >> ola
table.remove(t [,i]): sem uso do index.
str = {[1] = 'oi'}
print(str[1]) >> oi
table.remove(str)
print(str[1]) >> nil
str = {[1] = 'oi', [2] = “ola”}
table.remove(str)
print(str[1]) >> oi
table.maxn(t):
str = {[1] = 1, [100] = 100, [12] = 12, [23] = 23}
print(table.maxn(str)) >> 100
table.sort(t [,cf]):
str = {6,2,5,4,3,1} -- embaralhado
table.sort(str)
print(unpack(str)) >> 1 2 3 4 5 6 -- ordenado
table.concat(t [,s [,i [,j]]]):
str = {"ola", "mundo", "Aula", "de", "scripting", "lua", "!!!"}
print(table.concat(str," ",3,#str)) >> Aula de scripting lua !!!