課程目錄:Comprehensive Lua培訓(xùn)
        4401 人關(guān)注
        (78637/99817)
        課程大綱:

          Comprehensive Lua培訓(xùn)

         

         

         

        Introduction to Lua
        A bit of history
        Lua's goals, features and non-goals
        Resources of Lua documentation and tutorials
        Installing the Lua interpreter
        Setting up and using LuaRocks
        Basic syntax and semantics
        Identifiers
        Comments, block comments
        Global variables and enforcing of strictness
        Local variables
        Standalone programs, program arguments
        Compilation units, chunks, expressions, semicolons
        Data types and data structures
        Basic types: nil, boolean, number, string
        Object types: function, userdata, thread, table
        References/objects vs. basic values
        The importance of tables in Lua
        Introduction to tables and their versatility
        Tables as an associative array
        Tables as numeric arrays, sequences
        Basic control structures
        The if then elseif else end
        The while loop
        The repeat loop
        The simple for loop
        Error handling
        Return values vs exceptions
        Converting a return value to an exception
        Converting an exception to a return value
        Error levels
        Example programs
        Polynomial evaluation
        Breadth first search
        Additional exercises
        More about functions
        Named arguments
        Object-oriented calls
        Closures
        Currying
        Tail calls
        Multiple assignment and return
        Varargs
        Iterators and co-routines
        The generic for loop
        Stateless vs stateful iterators
        Differences between iterators and co-routines
        Metatables and metamethods
        The set example
        The __tostring metamethod
        Arithmetic metamethods
        The __index, __newindex metamethods
        The __len metamethod
        Modules and packages
        Using modules
        Creating modules
        Organizing modules into packages
        Advanced tables
        Tables for queues and stacks
        Tables describing graphs
        Matrices as tables
        Linked lists as tables
        String buffers
        Metatables through examples
        Proxies
        Readonly
        Memoization
        Dynamic programming with memoization
        The Fibonacci example
        Environments
        Relationship between global variables and environments
        Free variables
        The _ENV table and the _G table
        More about modules
        Different approaches to creating modules
        Modules that change the behavior
        Module initialization and arguments
        Using environments to implement safe modules
        Advanced iterators and co-routines
        Producer, consumer, filter
        Wrapping co-routines to get iterators
        Stateless iterator for linked lists
        Contributing to the Ecosystem
        Uploading packages to MoonRocks
        Functional paradigm in Lua
        The map function
        The reduce / fold function
        Object-oriented Programming
        Different approaches to OOP
        Different approaches to inheritance
        Examples
        A walkthrough of the Lua Standard Libraries
        Compilation
        Compilation
        Eval
        Relationship with the environment
        Binary chunks
        Garbage collection
        Weak tables
        Finalizers, the __gc meta-method
        Lua bytecode and virtual machine
        Generating bytecode from source code
        Reading and analyzing bytecode
        Quick tour of the source code of the Lua VM
        C modules
        Calling C from Lua
        Search path and loading of C modules
        Calling Lua from C
        The Stack
        Error handling
        Continuations
        Handling Lua values and types from C
        Arrays
        Strings
        Userdata
        Metatables
        Object oriented calls
        Light userdata
        Memory management
        Allocators
        GC API
        Threads in Lua
        Co-routines vs threads
        Real multi-threading and Lua states