Lua学习之划重点
1、lua中,全局变量不需要声明,即使访问一个不存在的变量也不会报错,会输出nil,对于我这个写习惯C#的来说真是难受,还不用分号。
2、nil作比较时应该加上双引号:
> type(x)
> nil
> type(x) == "nil"
> true
> type(x) == nill
> false
3、lua只有一种number类型,没有什么int, float, double…之分
4、字符串除了能用"字符串",还可以用[[一块字符串]]表示,两个字符串数字相加不是字符串拼接,而是就是两个数字相加,而字符串拼接用的是 …如下图:
计算字符串的长度直接用#
len = "hello world"
print(#len)
11
5、table在默认初始表里索引从1开始而不是0
6、线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。
7、Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。
8、Lua 可以对多个变量同时赋值,变量列表和值列表的各个元素用逗号分开,赋值语句右边的值会依次赋给左边的变量。如下图这样,交换两个变量的值是不是贼方便不会出现a=2之后b=2:
当等号左右两边个数不一样时:
变量个数 > 值个数 ----------------- 多余的变量都是nil
变量个数 < 值个数 ----------------- 多余的值会被忽略
9、Lua对table的索引既可以使用tab[“key”]也可以使用tab.key
10、其中if(0)为true,true和非nil都为true,false和nil都为false
11、for循环分为:数值for循环和泛型for循环,ipairs是Lua提供的一个迭代器函数,用来迭代数组。
> days = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Firday", "Satruday" }
> for i, v in ipairs(days) do print(i, v) end
1 Sunday
2 Monday
3 Tuesday
4 Wednesday
5 Thursday
6 Firday
7 Satruday
12、循环还有个repeat … unitl
学习网址转载https://www.runoob.com/lua/lua-tutorial.html