Skip to content

Latest commit

 

History

History
75 lines (56 loc) · 1.12 KB

File metadata and controls

75 lines (56 loc) · 1.12 KB

lua

Lua é uma linguagem interessante, ao estudar um pouco sobre ela notei muitas características que acreditava ser de linguagens modernas.

Lua possuí os seguintes tipos de variáveis:

boolean
function
nil
number
string
table
thread
userdata

Imprimir:

print('texto')

Imprimir sem quebra de linha:

io.write('texto')

Recebendo número de parâmetros indefinidos:

function numbers(a, b, ...) end

Recebendo todos os valores indefinidos:

function numbers(...)
  local args = {...}
  return args
end

Recevendo valores padrões:

function numbers(a = 1, b = 2)
  return a + b
end

Usando pcall (protect call) para verificar se uma função é válida ou não:

local function divide(a, b)
  return a / b
end

local status, result = pcall(divide, 10, 5)

if status and type(result) == 'number' and result ~= math.huge then
  print('success: ' .. result)
else
  print('error: ' .. result)
end

Assert para verificar um erro:

local x = 'string'
local isnumber = assert(type(x) == 'number', 'x not a number')
if isnumber then print('number: ' .. x) end