função pode ser criada, armazenada em uma variável ou campo de tabela
podendo ser passada adianta como parametro ou valor de retorno de
uma outra função
Pode ser usada uma dentro da outra
As funções não tem nome, são sempre anônimas
Testar = print que imprime um valor na tela
Funções podem ser criadas localmente dentro de outras funções e depois retornadas ou armazenadas
em uma tabela
Variáveis e tipos
Não possuem tipos associadas a elas
Pode ter o valor de um tipo e depois ter valor de outro tipo deixando de armazenar o valor inicial
Comentários começam por (--)
Variáveis globais não precisam ser declaradas
Variáveis locais- só existem naquele trecho e devem ser declaradas = local a
8 tipos =
Nil = ausência de valores
Boolean = Verdadeiro ou falso
Number = Valor numérico, não diferencia valor inteiro de valor real
Strings = "" - '' - [[]]
Table = valor associativo
function: função escrita em Lua ou escrita em C e registrada em Lua
userdata: dado do host,representado por um ponteiro void*
thread: linha de execução
Operadoresecontroladoresdefluxo
Operadores aritiméticos
+ adição
- subtração
* multiplicação
/ Divisão
~exponenciação
- Unário = negação
Operadores relacionais resultam em valores booleanos
< - Menor
> Maior
<= - Menor e igual
>= Maior igual
== igualdade
~= diferença
Tomadas de decisões = if, then, else.
Testar = while ou repeat
Construção de laços com for
A execução dos laços while, repeat e for pode ser interrompida usando o comando break.
Tabelas e objetos
As tabelas são a única forma de estruturação de dados em Lua
{} - exeto Nil
Lua oferece uma sintaxe simplificada quando o índice é uma string simples
Eventos = esse mecanismo permite adotarmos uma programação orientada a objetos.
Dois eventos especiais cujos comportamentos podem ser programados
index - gerado quando tentamos acessar
um índice não existente na tabela
Newindex, = gerado quando tentamos atribuir um
valor a um índice ainda não existente na tabela
Esses eventos podem ser usados para programar diferentes comportamentos