SpringCloudAlibaba云商场-高性能门户网构建(四)

109 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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表示执行的独立线路,用于执行协同程序
tableLua 中的表(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的基础操作,大家可以跟着练习一下,掌握一门脚本语言,练起来!!!