摘要:
3.6 表的构造构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组:days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}Lua将"Sunday"初始化days[1](第一个元素索引为1),用"Monday"初始化days[2]. 阅读全文
摘要:
.. --两个点字符串连接,如果操作数为数字,Lua将数字转成字符串。print("Hello " .. "World") --> Hello Worldprint(0 .. 1) --> 01 阅读全文
摘要:
and or not逻辑运算符认为false和nil是假(false),其他为真,0也是true.and和or的运算结果不是true和false,而是和它的两个操作数相关。a and b -- 如果a为false,则返回a,否则返回ba or b -- 如果a为true,则返回a,否则返回b例如:print(4 and 5) --> 5print(nil and 13) --> nilprint(false and 13) --> falseprint(4 or 5) --> 4print(false or 5) --> 5一个很实用的技巧:如果x为false或者 阅读全文
摘要:
= == ~=这些操作符返回结果为false或者true;==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等。Lua通过引用比较tables、userdata、functions。也就是说当且仅当两者表示同一个对象时相等。a = {}; a.x = 1; a.y = 0b = {}; b.x = 1; b.y = 0c = aa==c but a~=bLua比较数字按传统的数字大小进行,比较字符串按字母的顺序进行,但是字母顺序依赖于本地环境。当比较不同类型的值的时候要特别注意:"0" == 0 -- false2 < 15 -- true 阅读全文
摘要:
二元运算符:+ - * / ^ (加减乘除幂)一元运算符:- (负值)这些运算符的操作数都是实数。 阅读全文
摘要:
函数是第一类值(和其他变量相同),意味着函数可以存储在变量中,可以作为函数的参数,也可以作为函数的返回值。这个特性给了语言很大的灵活性:一个程序可以重新定义函数增加新的功能或者为了避免运行不可靠代码创建安全运行环境而隐藏函数,此外这特性在Lua实现面向对象中也起了重要作用(在第16章详细讲述)。Lua可以调用lua或者C实现的函数,Lua所有标准库都是用C实现的。标准库包括string库、table库、I/O库、OS库、算术库、debug库。 阅读全文
摘要:
2.4 Strings指字符的序列。lua是8位字节,所以字符串可以包含任何数值字符,包括嵌入的0。这意味着你可以存储任意的二进制数据在一个字符串里。Lua中字符串是不可以修改的,你可以创建一个新的变量存放你要的字符串,如下:a = "one string"b = string.gsub(a, "one", "another") -- change string partsprint(a) --> one stringprint(b) --> another stringstring和其他对象一样,Lua自动进行内存分配和 阅读全文
摘要:
表示实数,Lua中没有整数。一般有个错误的看法CPU运算浮点数比整数慢。事实不是如此,用实数代替整数不会有什么误差(除非数字大于100,000,000,000,000)。Lua的numbers可以处理任何长整数不用担心误差。你也可以在编译Lua的时候使用长整型或者单精度浮点型代替numbers,在一些平台硬件不支持浮点数的情况下这个特性是非常有用的,具体的情况请参考Lua发布版所附的详细说明。和其他语言类似,数字常量的小数部分和指数部分都是可选的,数字常量的例子:4 0.4 4.57e-3 0.3e12 5e+20 阅读全文
摘要:
两个取值false和true。但要注意Lua中所有的值都可以作为条件。在控制结构的条件中除了false和nil为假,其他值都为真。所以Lua认为0和空串都是真。 阅读全文
摘要:
Lua中特殊的类型,他只有一个值:nil;一个全局变量没有被赋值以前默认值为nil;给全局变量负nil可以删除该变量。 阅读全文