这只是随笔,用于记录学习Lua时个人觉得比较有意思的坑点

  • lua的type方法总是回返回字符串,这是一个比较有意思的地方 当我第一次看到print(type(nil) == nil)的时候也会觉得应该输出ture才对。 可现实却是false,这是很有意思的一个地方,原因刚刚也提到了。 所以如果把代码改成print(type(nil) == "nil")输出就会为True了。
  • table表索引 table表索引也是一个很有意思的地方,刚刚开始学的时候我常常回混淆a.xa[x],但实际上a.x代表的是a["x"],而a[x]则是指由变量X对应的值索引表,此外数字也是一个道理,最后整形与浮点类型值是相等的,作为表元素时,指向的是同一个表元素。 具体见下方测试图: (打上注释是因为不打就会报空出错) 输出结果: 可以看到我们声明对象a赋值为b,然后创建table表用对象a进行操作,等价于testTable["b"]="B"这项操作。后面的字符串操作同理。
  • and 和 or操作符 ** 不知为何这对我来说是个很绕的操作点,所以在这里记录一下 (lua中 只有bool类型的false和nil为false) and操作符:当第一个值为false时回返回这个值,不然就返回第二个值。 or操作符:当第一个值为false时回返回这个值,不然就返回第二个值。 and 和 or都遵循短路原则,就是只有在必要的条件下才会对第二值进行操作。