Obrigado por enviar sua consulta! Um dos membros da nossa equipe entrará em contato com você em breve.
Obrigado por enviar sua reserva! Um dos membros da nossa equipe entrará em contato com você em breve.
Programa do Curso
Introdução a Lua
- Um pouco de história
- Objetivos, recursos e não objetivos de Lua
- Recursos de Lua documentação e tutoriais
- Instalando o interpretador Lua
- Configurando e usando LuaRocks
Sintaxe e semântica básicas
- Identificadores
- Comentários, bloquear comentários
- Variáveis globais e aplicação de rigor
- Variáveis locais
- Programas independentes, argumentos de programa
- Unidades de compilação, pedaços, expressões, ponto e vírgula
Tipos de dados e estruturas de dados
- Tipos básicos: nulo, booleano, número, string
- Tipos de objetos: função, userdata, thread, tabela
- Referências/objetos vs. valores básicos
- A importância das tabelas em Lua
Introdução às tabelas e sua versatilidade
- Tabelas como uma matriz associativa
- Tabelas como matrizes numéricas, sequências
Estruturas básicas de controle
- O if then elseif else termina
- O loop while
- O ciclo de repetição
- O loop for simples
Manipulação de erros
- Valores de retorno versus exceções
- Convertendo um valor de retorno em uma exceção
- Convertendo uma exceção em um valor de retorno
- Níveis de erro
Programas de exemplo
- Avaliação polinomial
- Amplitude da primeira pesquisa
- Exercícios adicionais
Mais sobre funções
- Argumentos nomeados
- Chamadas orientadas a objetos
- Fechamentos
- Escovando
- Chamadas finais
- Atribuição múltipla e retorno
- Varargs
Iteradores e co-rotinas
- O loop for genérico
- Iteradores sem estado vs. com estado
- Diferenças entre iteradores e co-rotinas
Metatabelas e metamétodos
- O exemplo definido
- 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
Tabelas avançadas
- Tabelas para filas e pilhas
- Tabelas que descrevem gráficos
- Matrizes como tabelas
- Listas vinculadas como tabelas
- Buffers de string
Metatabelas através de exemplos
- Proxies
- Somente leitura
- Memoização
- Programação dinâmica com memoização
- O exemplo de Fibonacci
Ambientes
- Relação entre variáveis globais e ambientes
- Variáveis livres
- A tabela _ENV e a tabela _G
Mais sobre módulos
- Diferentes abordagens para a criação de módulos
- Módulos que mudam o comportamento
- Inicialização e argumentos do módulo
- Usando ambientes para implementar módulos seguros
Iteradores e co-rotinas avançados
- Produtor, consumidor, filtro
- Envolvendo co-rotinas para obter iteradores
- Iterador sem estado para listas vinculadas
Contribuindo para o Ecossistema
- Fazendo upload de pacotes para MoonRocks
Paradigma funcional em Lua
- A função do mapa
- A função reduzir/dobrar
Orientado a objetos Programming
- Diferentes abordagens para OOP
- Diferentes abordagens para herança
- Exemplos
Um passo a passo das Lua bibliotecas padrão
Compilação
- Compilação
- Avaliação
- Relação com o meio ambiente
- Pedaços binários
Coleta de lixo
- Mesas fracas
- Finalizadores, o meta-método __gc
Lua bytecode e máquina virtual
- Gerando bytecode a partir do código fonte
- Lendo e analisando bytecode
- Tour rápido pelo código-fonte da VM Lua
Módulos C
- Chamando C de Lua
- Search caminho e carregamento de módulos C
Chamando Lua de C
- A pilha
- Manipulação de erros
- Continuações
Tratamento de valores e tipos Lua de C
- Matrizes
- Cordas
- Dados do usuário
- Metatabelas
- Chamadas orientadas a objetos
- Dados de usuário leves
Gerenciamento de memória
- Alocadores
- API do GC
Tópicos em Lua
- Co-rotinas vs threads
- Multi-threading real e estados Lua
Requisitos
Familiaridade com, pelo menos, uma outra linguagem de programação. Programming experiência. Opcionalmente, se você tiver familiaridade com outras linguagens de script, isso facilitará a compreensão de Lua.
21 Horas