Entrar em Contato

Programa do Curso

Introdução à Lua

  • Um pouco de história
  • Objetivos, recursos e não objetivos da Lua
  • Recursos de documentação e tutoriais sobre Lua
  • Instalação do interpretador Lua
  • Configuração e uso do LuaRocks

Sintaxe básica e semântica

  • Identificadores
  • Comentários, comentários de bloco
  • Variáveis globais e imposição de rigorose (strict mode)
  • Variáveis locais
  • Programas independentes, argumentos de linha de comando
  • Unidades de compilação, blocos (chunks), expressões, ponto e vírgula

Tipos de dados e estruturas de dados

  • Tipos básicos: nil, booleano, número, string
  • Tipos de objeto: função, userdata, thread, tabela
  • Referências/objetos versus valores primitivos
  • A importância das tabelas em Lua

Introdução às tabelas e sua versatilidade

  • Tabelas como matrizes associativas
  • Tabelas como matrizes numéricas, sequências

Estruturas de controle básicas

  • A estrutura if then elseif else end
  • O laço while
  • O laço repeat
  • O laço for simples

Tratamento de erros

  • Valores de retorno versus exceções
  • Conversão de valor de retorno em exceção
  • Conversão de exceção em valor de retorno
  • Níveis de erro

Exemplos de programas

  • Avaliação de polinômios
  • Pesquisa em largura (BFS)
  • Exercícios adicionais

Mais sobre funções

  • Argumentos nomeados
  • Chamadas orientadas a objetos
  • Closures (fechamentos)
  • Currying (currização)
  • Chamadas de cauda (tail calls)
  • Atribuição e retorno múltiplos
  • Varargs (argumentos variáveis)

Iteradores e co-rotinas

  • O laço for genérico
  • Iteradores sem estado versus com estado
  • Diferenças entre iteradores e co-rotinas

Metatables e metamétodos

  • O exemplo de conjuntos (sets)
  • O metamétodo __tostring
  • Metamétodos aritméticos
  • Os metamétodos __index e __newindex
  • O metamétodo __len

Módulos e pacotes

  • Usando módulos
  • Criando módulos
  • Organizando módulos em pacotes

Programação orientada a objetos

  • Os blocos de construção de POO em Lua
  • Exemplos

Discussão sobre recursos mais avançados da linguagem

  • Tabelas fracas (weak tables)
  • Finalizadores
  • Compilação, avaliação (eval), carregamento

Requisitos

Conhecimento prévio de pelo menos uma outra linguagem de programação. Experiência com programação. Opcionalmente, familiaridade com outras linguagens de scripting facilitará o entendimento de Lua.

 14 Horas

Número de participantes


Preço por participante

Próximas Formações Provisórias

Categorias Relacionadas