--[[ -- 2.8 function 类型初步 -- lua中 函数作为 “第一类值”来看待的。 这表示 函数可以存储在变量中,可以通过参数传递给其他函数,还可以作为其他函数的返回值。 -- lua既可以调用以自身lua语言编写的函数,又可以调用以C语言编写的函数。lua所有的标准库都是C语言写的,标准库中包括对字符串的操作,table -- 的操作,I/O,操作系统的功能调用,数学函数和调试函数。 应用程序也可以用C语言来定义其他函数。 -- -- ]]-- --[[ -- 2.9 userdata 类型和thread -- userdata类型可以将任意的C语言数据存储到LUA变量中。在LUA中,这种类型没有太多的预定义操作,只能进行赋值和相等性测试。userdata用于表 -- 示一种由应用程序或C语言库创建的新数据类型,例如标准的I/O库就用userdata来表示文件。 -- -- ]]-- --[[ -- 3 表达式 -- 表达式用于表示值。LUA的表达式中可以包含数字常量,字面字符串,变量,一元和二元操作符及函数调用。 另外有别于传统的是,表达式中还可以包 -- 括函数定义和table构造式。 -- -- ]]-- --[[ 算数操作符,关系操作符,逻辑操作符,字符串操作符 算数和关系 和其他的语言很相识,看看逻辑操作符: ]]-- print(4 and 5) --and 会返回第一个为假连接的操作数 print(nil and 5) -- 否则返回第二操作数 print(false and 5) --返回false,第一个为假的操作数 print(4 or 5) --or 返回第一个为真的连接数 print(false or 5) --否则返回第二个连接数 --[[ and和or都使用“短路求值”,也就是说,它们只会在需要时才去评估第二个操作数。 lua习惯写法 “x=x or v” 等价于 if not x then x = v end ]]-- --[[ 操作符的优先级顺序和其他的语言差不多 ]]-- --[[ table 构造试 构造式是用于创建和初始化table的表达式。这是Lua特有的一种表达式,并且也是Lua中最有用、最通用的机制之一。 最简单的构造式就是一个空构造式{},用于创建一个空的table。 ]]-- --[[ 实现链表 list = nil for line in io.lines() do list = { next = list, vaule = line} end ]]--
Lua笔记3-function、userdata和thread类型
最新推荐文章于 2022-08-09 10:10:09 发布