Entrar em Contato

Programa do Curso

Introdução ao Lua

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

Sintaxe e semântica básicas

  • Identificadores
  • Comentários, comentários de bloco
  • Variáveis globais e aplicação de estriteza
  • Variáveis locais
  • Programas independentes, argumentos do programa
  • Unidades de compilação, blocos, expressões, ponto e vírgula

Tipos de dados e estruturas de dados

  • Tipos básicos: nil, boolean, number, string
  • Tipos de objeto: function, userdata, thread, table
  • Referências/objetos vs. valores básicos
  • A importância das tabelas no Lua

Introdução às tabelas e sua versatilidade

  • Tabelas como array associativo
  • Tabelas como arrays numéricos, sequências

Estruturas de controle básicas

  • if then elseif else end
  • Laço while
  • Laço repeat
  • Laço for simples

Tratamento de erros

  • Valores de retorno vs. exceções
  • Convertendo um valor de retorno em exceção
  • Convertendo uma exceção em valor de retorno
  • Níveis de erro

Programas de exemplo

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

Mais sobre funções

  • Argumentos nomeados
  • Chamadas orientadas a objetos
  • Fechamentos (closures)
  • Currying
  • Chamadas de cauda (tail calls)
  • Atribuição e retorno múltiplos
  • Varargs

Iteradores e co-rrotinas

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

Metatabelas e metamétodos

  • O exemplo do set
  • O metamétodo __tostring
  • Metamétodos aritméticos
  • Os metamétodos __index, __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 da POO no Lua
  • Exemplos

Discussão sobre recursos avançados da linguagem

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

Requisitos

Familiaridade com pelo menos uma outra linguagem de programação. Experiência em programação. Opcionalmente, a familiaridade com outras linguagens de scripting facilitará o entendimento do Lua.

 14 Horas

Número de participantes


Preço por participante

Próximas Formações Provisórias

Categorias Relacionadas