携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情
每日英语:
What can stop the determined heart and resolved will of man?
翻译:世上有什么东西能够阻挡人的坚定的信念和意志呢? -《科学怪人》
1.学习Lua的基础操作
Lua 本身提供了交互式编程模式。我们可以在命令行中输入程序并立即查看效果,这种编程模式类似我们控制台操作,Lua 交互式编程模式可以通过命令 lua -i 或 lua 来启用:
[root@VM-0-14-centos ~]# lua -i
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
>
1)打印,从最经典的“Hello World”开始
print("Hello World")
2)关于lua的数据类型
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 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。 |
可以使用 type 函数简单做一下类型测试:
> print(type(nil))
nil
> print(type(false))
boolean
> print(type(123))
number
> print(type("666"))
string
> print(type(print))
function
> print(type(type))
function
> print(type({}))
table
>
3)变量的定义
变量在使用前,需要在代码中进行声明,即创建该变量。Lua 变量有三种类型:全局变量、局部变量、表中的域。
全局变量定义:
> age = 18
> print(age)
18
局部变量定义
> local name = zhangsan
> print(name)
nil
此时的name不是全局变量,一般在某个方法中使用,不能全局使用,所以输出为nil。
4)对象(table)的创建
> --定义对象result
> result = {}
> --往对象result中添加属性name,赋值为zhangsan
> result["name"] = "zhangsan"
> --往对象result中添加属性age,赋值为18
> result["age"] = 18
> --输出对象result中的name属性值
> print(result["name"])
zhangsan
> --输出对象result中的age属性值
> print(result["age"])
18
5)函数的创建
创建一个函数,其实就是创建一个方法,函数以function开始,end结束,可以在end之前有返回值,也可以有入参,定义一个方法如下:
> --定义creatUser方法,入参为age
> function creatUser(age)
>> --age在原有基础上+1
>> age = age + 1
>> --返回变化后的age
>> return age
>> --结束
>> end
> 测试输出
> print(creatUser(16))
17
6)拼接,类似于java中的字符串拼接 "+"
在上面方法调用上拼接一段字符串,可以使用亮点来做..,如下:
> print(creatUser(16).."岁了")
17岁了
7)逻辑判断
我们经常会做一些条件判断,在lua中也可以实现,lua中有if xx then else end的流程判断语法。示例如下:
> function decideAge(age)
>> if age >= 18 then
>> return "成年人"
>> else
>> return "未成年人"
>> end
>> end
> print(decideAge(16))
未成年人
> print(decideAge(18))
成年人
8)脚本式编程
我们也可以像写java一样,将lua脚本写到一个文件中,并且可以在一个脚本文件引入另外一个脚本文件,类似java中的导包。
创建class.lua,代码如下:
--定义一个对象
local class = {}
--定义一个方法
function class.className(id)
if id==1 then
return "1班"
else
return "2班"
end
end
return class
创建student.lua,代码如下:
--导入class.lua
local cs = require("class")
--调用className方法
local result = cs.className(1)
print(result)
执行student.lua:
[root@VM-0-14-centos luatest1]# lua student.lua
1班
总结:本篇主要介绍了一下Lua的基础操作,大家可以跟着练习一下,掌握一门脚本语言,练起来!!!