• Lua学习笔记(1)


      最近在学Lua,看的是《Lua程序设计(第二版)》,似乎是唯一的中文资料了吧。且已经绝版,除了淘宝上能看到若干影印版外,其他的都找不到了。如果有朋友能找到正版的,请不吝相告

    记录下初步的感受吧:

    1.数据类型

      Lua只有:nil(空)、boolean(布尔)、number(数值)、string(字符串)、userdata(自定义类型)、function(函数)、thread(线程)、table(表)这么几个类型。其中boolean的值为true/false(这不是废话吗),有意思地方在于,Lua将false跟nil视为假,也即是这两者之外都为真(不管是数值0,还是空字符串)。

    2.运算符

      算术运算符、关系运算符与目前主流的开发语言没什么差异。逻辑运算符虽然写法略有差别(and、or、not),但是主要还是运算结果还是不一样的

      在C#/C++/java这些静态语言(也是主流语言)中,逻辑运算符的计算结果大都都是bool型,即为true/false。但是lua并不完全是。

      

    a and b ----a若真,则返回 b

      这样的表达式下,返回了是整个对象(如果a跟b是对象的话)

      另外在Lua没有三元表达式,但是可以通过逻辑运算符来实现相似的功能

      

    a and b or c ----要与三元表达式达到同样的效果,前提是b为真

      原因是如果a为真,而b为假了,那么返回的不是b,而是c了,这个跟三元表达式就不一致了。个人感觉三元表达式的内在思想是分支,而Lua的模拟通过的是运算。而分支跟运算的差异在前面说的情况下,差异一下子就出来了。所以如果要用这种方式来实现三元表达式,就必须清楚b的值了。替代的方案是..........if...else(额)

      另外Lua没有switch..所以,你懂的

  • 相关阅读:
    spark-env.sh增加HADOOP_CONF_DIR使得spark运行文件是hdfs文件
    spark wordcount程序
    hive内表和外表的创建、载入数据、区别
    select下拉框,二次定位
    Linux基本命令
    用户信息添加数据库
    MySQL查询语句练习
    mysql数据库、数据表、数据基本操作
    图像人脸检测(框出人脸、笑脸、眼睛)
    collections模块
  • 原文地址:https://www.cnblogs.com/haiyidao/p/2738007.html
Copyright © 2020-2023  润新知