第2章 类型和值
nil、boolean、number、string、userdata、function、thread和table
nil:这种类型至于一个值,那就是nil。如果一个变量的值是nil,那么这个变量就不存在(不是为空,而是不存在)。所以当对一个变量赋值为nil时,也就是不要这个变量了。
boolean:有两种值,false、true。在lua中,变量结果为false只有两种情况,false、nil。即使是0都是true
nubmer:实数,不区分整数和小数,代表所有的数。
string:字符串。可以存放非常大的字符串,有1M的。
function:lua中认为函数是第一类值,是可以像其他参数一样。
userdata:用来存放c语言数据,具体使用,后续再看。
string类,有一些其他的操作。当string类型碰到算术运算符的时候,会变成number类型。当number碰到字符链接符(..)的时候,会变成string类型。
还有可以用 tostring(value)、tonumber(value)这样的函数来转换。
第3章 运算符
算数运算符 :类似 +、-、*、/还有 - 都是给实数运算用的
关系运算符 :<、>、<=、>=、==、~= ,返回的结果只有两种,true、false
比较number时,规则时传统的比大小规则。
比较string时,从首字母开始按照字母顺序进行,靠后的比较大。"abc"<"abcd"
混合string和number比较的时候,lua会报错。ps:”2“>15
逻辑运算符 :and or not
A and B :A为false时,结果为A,否则结果为 B
A or B :A为ture时,结果为A,否则结果为B
and的优先级比or高
A?B:C
A and B or C
上述两者时等价的。
连接运算符 :..
用于连接字符串,A..B --> AB
当连接字符串两端有number类型时,会自动转换成string类型
优先级 :
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or