03、Lua 基本语法

Lua 基本语法

Lua 基本语法

Lua学习起来非常简单,我们可以创建第一个 Lua 程序!

第一个 Lua 程序

交互式编程

Lua提供了交互式编程模式。我们可以在命令行中输入程序并立即查看效果。

Lua交互式编程模式可以通过命令 lua -i lua 来启用:

lua 复制代码
$ lua -i 
$ Lua 5.3.0  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> 

在命令行中,输入以下命令:

lua 复制代码
> print("Hello World!")

接着我们按下回车键,输出结果如下:

lua 复制代码
> print("Hello World!")
Hello World!
> 

脚本式编程

我们可以将 Lua 程序代码保持到一个以 lua 结尾的文件,并执行,该模式称为脚本式编程,如我们将如下代码存储在名为 hello.lua 的脚本文件中:

lua 复制代码
print("Hello World!")
print("www.w3cschool.cn")

使用lua 名执行以上脚本,输出结果为:

lua 复制代码
$ lua test.lua
Hello World!
www.w3cschool.cn

我们也可以将代码修改为如下形式来执行脚本(在开头添加:#!/usr/local/bin/lua):

lua 复制代码
#!/usr/local/bin/lua

print("Hello World!")
print("www.w3cschool.cn")

以上代码中,我们指定了 Lua 的解释器 /usr/local/bin directory 。加上 # 号标记解释器会忽略它。接下来我们为脚本添加可执行权限,并执行:

lua 复制代码
./test.lua 
Hello World!
www.w3cschool.cn

注释

单行注释

两个减号是单行注释:

lua 复制代码
--

多行注释

lua 复制代码
--[[
 多行注释
 多行注释
 --]]

标示符

Lua表示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。

最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。

Lua不允许使用特殊字符如 @, $ , 和 % 来定义标示符。 Lua 是一个区分大小写的编程语言。因此在 Lua 中 W3c 与 w3c 是两个不同的标示符。以下列出了一些正确的标示符:

lua 复制代码
mohd         zara      abc     move_name    a_123
myname50     _temp     j       a23b9        retVal

关键词

以下列出了 Lua 的保留关键字。保留关键字不能作为常量或变量或其他用户自定义标示符:

一般约定,以下划线开头连接一串大写字母的名字(比如 _VERSION)被保留用于 Lua 内部全局变量。

全局变量

在默认情况下,变量总是认为是全局的。

全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil

lua 复制代码
> print(b)
nil
> b=10
> print(b)
10
> 

如果你想删除一个全局变量,只需要将变量赋值为 nil

lua 复制代码
b = nil
print(b)      --> nil

这样变量b就好像从没被使用过一样。换句话说, 当且仅当一个变量不等于nil时,这个变量即存在。

相关推荐
老朱佩琪!2 分钟前
Unity原型模式
开发语言·经验分享·unity·设计模式·原型模式
毕设源码-郭学长2 分钟前
【开题答辩全过程】以 基于JAVA的车辆违章信息管理系统设计及实现为例,包含答辩的问题和答案
java·开发语言
while(1){yan}3 分钟前
UDP和TCP的核心
java·开发语言·网络·网络协议·tcp/ip·udp
后端小张8 分钟前
【Java 进阶】深入理解Redis:从基础应用到进阶实践全解析
java·开发语言·数据库·spring boot·redis·spring·缓存
码海踏浪27 分钟前
JMeter 时间函数合集
开发语言·python
麦麦鸡腿堡28 分钟前
Java_反射暴破创建对象与访问类中的成员
java·开发语言
不会c嘎嘎28 分钟前
深入理解QT之信号和槽
开发语言·qt
SunnyDays101128 分钟前
Python 实现 PDF 文档压缩:完整指南
linux·开发语言·python
Cx330❀29 分钟前
《C++ 动态规划》第001-002题:第N个泰波拉契数,三步问题
开发语言·c++·算法·动态规划
神仙别闹30 分钟前
基于Qt5(C++)+SQLite 开发的一个小巧精美的本地音乐播放器
开发语言·c++·qt