07,Lua 基本数值类型(3)

来源:互联网 发布:南京大学大数据实验室 编辑:程序博客网 时间:2024/05/29 03:11

    function(函数)

    在Lua中,函数是作为“第一类值”来看待的。这表示函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值。

    Lua允许在某些词法域中编写嵌套的函数。

    Lua既可以调用以自身Lua语言编写的函数,又可以调用以C语言编写的函数。Lua所有的标准库都是用C语言写的,标准库中包括对字符串的操作,table的操作,I/O,操作系统的功能调用、数学函数和调试函数。同样,应用程序也可以用C语言来定义其他函数。

  

    thread(协程)

   在 Lua 里,最主要的线程是协同程序(coroutine)。它跟线程(thread)差不多,拥有自己独立的栈、局部变量和指令指针,可以跟其他协同程序共享全局变量和其他大部分东西。
    线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。


    userdata(用户数据类型)

   由于userdata类型可以将任意的C语言数据(struct、指针)存储到Lua变量中。在Lua中,这种类型没有太多的预定义操作,只能进行复制和相等性测试。userdata用于表示一种由应用程序或C语言库所创建的新类型。如:I/O库就用userdata来表示文件。