Lua 的标识符、关键字、数据类型和字符串拼接

JAVA herman 609浏览
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

Lua 不同的人,读的英文不同。有的直接读 L、U、A,有的读 [ˈluə],卢阿。如果有人读的和你不一样,也不要嘲笑他,因为他说不定就是一个隐藏的大佬。

Lua 学起来非常的简单,前提是你有一门编程语言基础。今天我们一起来看看 Lua 的标识符、关键字、字符串连接等知识点吧。

Lua 的标识符一般用来定义变量、函数名等。所以,它必须要有一套自己的规范。Lua 标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上 0 个或多个字母,下划线,数字(0 到 9)。看起来和 Java 一样,但实际上 Java 的变量中还支持 $ 符号。但 Lua 中就不行,Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符。另外也不建议大家使用下划线加大写字母的标示符,因为 Lua 的保留字也是这样的。

Lua 是一个区分大小写的编程语言。因此在 Lua 中 Xttblog 与 xttblog 是两个不同的标示符。

比如,这几个变量:xttblog、x0、x_、Xttblog、x_ttblog、_x、xttBlog 都是正确的。

和其他语言类似,Lua 中保留的关键字也不能用做标识符。

Lua 中的保留关键字如下所示:

| and      | break | do    | else   |
| elseif   | end   | false | for    |
| function | if    | in    | local  |
| nil      | not   | or    | repeat |
| return   | then  | true  | until  |
| while    |

我在上一篇文章中还讲到了 Lua 中的变量。有全局变量和局部变量,如果全是全局变量,那就很浪费内存不是。如何将不用的变量清理掉呢?

答案是给变量赋值为 nil。换句话说, 当且仅当一个变量不等于 nil 时,这个变量即存在。当为非 nil 时,就代表这个变量存在。

xttblog = nil
print(xttblog)
nil

在上一篇中,我还简单的解释了一下 Lua 的数字类型。今天,我再来解释一下另外的 7 个数据类型。

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。

Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

Lua 的数据类型
  • nil:这个最简单,只有值 nil 属于该类,表示一个无效值(在条件表达式中相当于 false)。
  • boolean:包含两个值:false 和 true。
  • number:表示双精度类型的实浮点数
  • string:字符串由一对双引号或单引号来表示
  • function:由 C 或 Lua 编写的函数
  • userdata:表示任意存储在变量中的 C 数据结构
  • thread:表示执行的独立线路,用于执行协同程序
  • table:Lua 中的表(table)其实是一个”关联数组”(associative arrays),数组的索引可以是数字或者是字符串。在 Lua 里,table 的创建是通过”构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。

判断一个变量的类型,我们可以使用 Lua 的 type 函数进行检测。

print(type("Hello world"))      --> string
print(type(10.4*3))             --> number
print(type(print))              --> function
print(type(type))               --> function
print(type(true))               --> boolean
print(type(nil))                --> nil
print(type(type(X)))            --> string

table 类型其实是一个”关联数组”(associative arrays),数组的索引可以是数字或者是字符串。

-- 创建一个空的 table
local tbl1 = {}
-- 直接初始表
local tbl2 = {"x", "xtt", "blog", "xttblog"}

可以使用索引,取值或者赋值。

-- xttblog.lua 脚本文件
a = {}
a["key"] = "value"
key = 520
a[key] = 88
a[key] = a[key] + 11
for k, v in pairs(a) do
    print(k .. " : " .. v)
end

运行 lua xttblog.lua 输出内容如下所示:

Lua 的 table 类型

这些数据类型,我们在后面遇到的时候,我再详细的说。现在我们来看 Lua 的字符串拼接。

在 Java 中,我们使用的是 + 拼接字符串。但是 Lua 中,字符串拼接用的是 .. 。举例如下所示:

> print("xtt" .. 'blog')
xttblog
> print(1314 .. 520)
1314520
>

另外,要计算字符串长度要用 #,不要感觉很另类,看下面的例子。

> len = "www.xttblog.com"
> print(#len)
15
> print(#"www.xttblog.com")
15
>

以上,就是这一章的内容,希望对大家学习 Lua 有所帮助。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号1:xmtxtt(5000人已满),微信号2:codedq(5000人已满),微信号3:xttblog(超2800)。备注:“xttblog”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Lua 的标识符、关键字、数据类型和字符串拼接