分类 第一部分 下的文章

1、在 lua 中,函数是作为‘第一类值’来看待的。(表示函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值)

2、

  • 为了给一个函数添加新的功能,程序可以重新定义该函数。
  • 运行一些不受信任的代码时,可以先删除某些函数,从而创建一个安全的运行环境。
  • Lua 对’函数式编程‘也提供了良好的支持。如,允许在某些词法域中编写嵌套的函数。

3、Lua 既可以调用以自身 Lua 语言编写的函数,又可以调用以 c语言 编写的函数

4、Lua 所有的标准库都是用 c语言 写的,标准库中包含对

  • 字符串的操作
  • table 的操作
  • I/O
  • 操作系统的功能调用
  • 数学函数
  • 调试函数

5、应用程序也可以用 c语言 来定义其他函数

1、由于 userdata 类型可以将任意的 c语言数据 存储到 Lua变量 中。在 Lua 中,这种类型没有太多的预定义的操作,只能进行 赋值 和 相等性测试

userdata 用于表示一种由 应用程序 或者 c语言库 所创建的新类型,如,标准的 I/O库 就用 userdata 来表示文件

2、thread -- 协同程序

1、

<、>、<=、>=、==、~=(不等性测试)

结果都是 true 或 false

2、nil 只与自身相等

3、对于 table、userdata 和函数,Lua 是作引用比较的。(只有当它们引用同一个对象时,才认为它们相等)

4、

  • 数字和字符串 可以作大小性比较相等性比较不等性比较
  • 其他类型 只能作相等性比较不等性比较

5、注意不同类型的值做比较

'0' != 0
2 < 15  
‘2’ < ‘15’  -- 错误
2 < '15' -- 引发一个错误

表达式用于表示值。Lua 的表达式中可以包含数字常量、字面字符串、变量、一元和二元操作符及函数调用。另外有别于传统的是,表达式中还可以包括函数定义和 table 构造式。