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。
- 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 的字符串拼接。
在 Java 中,我们使用的是 + 拼接字符串。但是 Lua 中,字符串拼接用的是 .. 。举例如下所示:
> print("xtt" .. 'blog')
xttblog
> print(1314 .. 520)
1314520
>
另外,要计算字符串长度要用 #,不要感觉很另类,看下面的例子。
> len = "www.xttblog.com"
> print(#len)
15
> print(#"www.xttblog.com")
15
>
以上,就是这一章的内容,希望对大家学习 Lua 有所帮助。
: » Lua 的标识符、关键字、数据类型和字符串拼接
原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/252134.html