Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Duración 14 horas
Temario del curso
Introducción a Lua
- Un poco de historia
- Objetivos, características y no objetivos de Lua
- Recursos de documentación y tutoriales de Lua
- Instalación del intérprete de Lua
- Configuración y uso de LuaRocks
Sintaxis y semántica básicas
- Identificadores
- Comentarios, comentarios de bloque
- Variables globales y aplicación de estricticidad
- Variables locales
- Programas independientes, argumentos del programa
- Unidades de compilación, fragmentos (chunks), expresiones, puntos y comas
Tipos de datos y estructuras de datos
- Tipos básicos: nil, booleano, número, cadena
- Tipos de objetos: función, userdata, hilo, tabla
- Referencias/objetos vs. valores básicos
- La importancia de las tablas en Lua
Introducción a las tablas y su versatilidad
- Tablas como matriz asociativa
- Tablas como matrices numéricas, secuencias
Estructuras de control básicas
- if then elseif else end
- Bucle while
- Bucle repeat
- Bucle for simple
Manejo de errores
- Valores de retorno vs. excepciones
- Convertir un valor de retorno en una excepción
- Convertir una excepción en un valor de retorno
- Niveles de error
Programas de ejemplo
- Evaluación de polinomios
- Búsqueda en amplitud (BFS)
- Ejercicios adicionales
Más sobre funciones
- Argumentos nombrados
- Llamadas orientadas a objetos
- Cierres (closures)
- Currying
- Llamadas de cola (tail calls)
- Asignación y retorno múltiples
- Varargs
Iteradores y corrotinas
- Bucle for genérico
- Iteradores sin estado vs. con estado
- Diferencias entre iteradores y corrotinas
Metatablas y metamétodos
- El ejemplo de conjuntos (sets)
- Metamétodo __tostring
- Metamétodos aritméticos
- Metamétodos __index, __newindex
- Metamétodo __len
Módulos y paquetes
- Uso de módulos
- Creación de módulos
- Organización de módulos en paquetes
Programación orientada a objetos
- Los bloques de construcción de la POO en Lua
- Ejemplos
Discusión sobre características de lenguaje más avanzadas
- Tablas débiles
- Finalizadores
- Compilación, evaluación, carga
Requerimientos
Conocimiento de al menos otro lenguaje de programación. Experiencia en programación. Opcionalmente, si tiene familiaridad con otros lenguajes de scripting, eso facilitará la comprensión de Lua.