(摘自Lua程序设计)

Lua语言中的标识符(或名称)是由任意字母丶数字和下划线组成的字符串(注意不能以数字开头)

下划线加大写字母组成的标识符通常被Lua语言用作特殊用途,应避免将其用作其他用途。

单行注释:

Lua语言中使用两个连续的连字符(--)表示

多行注释:

使用两个连续的连字符加两对连续左方括号表示长注释或多行注释的开始,直到两个连续的右括号为止,中间都是注释。

(--[[  ... ]])

在注释一段代码时,一个常见的技巧是将这些代码放入--[[和--]]之间,列如

--[[
print(10)
--]]

当我们需要重新启用这段代码时,只需在第一行行首添加一个连字符即可

---[[
print(10)
--]]

在Lua语言中,连续语句之间的分隔符并不是必须的,如果有需要的话可以使用分号来进行分隔。

在Lua语言中,表达式之间的换行也不起任何作用。

在Lua语言中,全局变量无需声明即可使用,使用未经初始化的全局变量也不会导致错误,当使用未经初始化的变量时,得到的结果是nil。

Lua语言是一种动态语言,在这种语言中没有类型定义。

nil:

nil是一种只有nil值得类型,它的主要作用就是与其他所有值进行区分。Lua使用nil来表示无效值得情况(相当于null?)

一个全局变量第一次被赋值前得默认值就是nil,而将nil赋值给全局变量则相当于把他删除。

Lua将除了Boolean类型得false和nil的其他所有值视为真。在条件测试中零和空字符串也都视为真。

逻辑运算符and的运算结果为:如果它的第一个操作数为false(nil),则返回第一个操作数,否则返回第二个操作数。

逻辑运算符or的运算结果为:如果第一个操作数不为false(nil),则返回第一个操作数,否则返回第二个操作数。

and和or都遵循短路求值原则,即只有在必要时才对第二个操作数进行求值。

在Lua语言中,形如x = x or v的惯用写法非常有用,它等价于:

if not x then x = v end

即,当x未被初始化时,将其默认值设为v。

not运算符将永远返回Boolean类型的值

not nil  --> true

not false --> true

not true --> false

not 0 --> false

not not nil -->false

Lua语言入门的更多相关文章

  1. lua语言入门之Sublime Text设置lua的Build System

    转自: http://blog.csdn.net/wangbin_jxust/article/details/8911956 最近开始学习LUA语言,使用Sublime Text作为编辑器,不得不说, ...

  2. 【Lua程序设计第四版练习题答案】ch01 Lua语言入门

    联系1.1: 运行阶乘的示例并观察,如果输入负数,程序会出现什么问题?试着修改代码来解决问题.   -- 定义一个计算阶乘的函数 function fact (n) if n == 0 then re ...

  3. (五)Lua脚本语言入门

    ---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...

  4. (一)Lua脚本语言入门

    今天开始自己的Lua语言学习,Lua脚本语言,是介于应用程序和开发其应用程序的底层编程语言之间,,它很方便调用其它语言,它只是在载入时对其进行编译,而不像我们写的单片机程序是预编译的,先编译好然后写入 ...

  5. Lua简易入门教程

    环境:lua for windows (lfW)主页:http://luaforwindows.luaforge.net/https://code.google.com/p/luaforwindows ...

  6. 【quick-cocos2d-x】Lua 语言基础

    版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速 ...

  7. Lua 从入门到放弃

    Lua 从入门到放弃 What is Lua? Lua is a powerful, efficient, lightweight, embeddable scripting language. It ...

  8. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  9. 用VC编译lua源码,生成lua语言的解释器和编译器

    用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编 ...

随机推荐

  1. 校园商铺-2项目设计和框架搭建-6逐层完成SSM的各项配置

    1. 创建/src/main/resources/jdbc.properties文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://l ...

  2. TopCoder[SRM513 DIV 1]:Reflections(1000)

    Problem Statement      Manao is playing a new game called Reflections. The goal of the game is trans ...

  3. kubernetes监控和性能分析工具:heapster+influxdb+grafana

    1.部署heapster 下载 heapster 相关 yaml 文件 [root@master dashboard]# wget https://raw.githubusercontent.com/ ...

  4. 将文件大小数值转换成B、KB、MB、GB

    //delphi 将文件大小数值转换成B/KB/MB/GB function FormatByteSize(const bytes: Longint): string; const B = 1; // ...

  5. vue框架介绍

    vue框架介绍 一.vue 概念 vue 是一种开发用户界面的渐进式开发框架.渐进式指的是:你可以将vue作为一部分嵌入到web应用中,带来丰富的交互体验 二.vue特点及常见开发中的高级功能 1.解 ...

  6. mysql用户管理和pymysql

    mysql用户管理 为了使不同的人员访问到对应身份的数据库资源,每个人都有不同的权限. mysql本质上是一款cs软件,它具备用户认证,那么如何实现呢?那就是写入文件,但是在mysql把文件称作表,只 ...

  7. Docker系列(七):Docker图形化管理和监控

    Docker管理工具之官方三剑客 Docker Machine是什么鬼 从前 现在 你需要登录主机,按照主机及操作系统特有的安装以及配置步骤安装Docker,使其 能运行Docker容器. Docke ...

  8. java编程规约二

    四.OOP规约(Object Oriented Programming,面向对象设计) 1.静态变量和静态方法直接用类名访问,不要再new 对象去访问 2.方法覆盖必须加@Override注解 3.尽 ...

  9. InfluxDB的安装和简介

    InfluxDB简介 InfluxDB是一个时间序列数据库,旨在处理高写入和查询负载.它是TICK堆栈的组成部分 .InfluxDB旨在用作涉及大量带时间戳数据的任何用例的后备存储,包括DevOps监 ...

  10. 激活office2016的心路历程

    先转换成VOL版本 32位的office2016用如下代码 @echo off :ADMIN openfiles >nul >nul ||( echo Set UAC = CreateOb ...