这只是随笔,用于记录学习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都遵循短路原则,就是只有在必要的条件下才会对第二值进行操作。


学无止境,知行合一,学以致用,举一反三。