微服务学习笔记--高级篇--(Lua语法)

Lua语法入门

  • 初识Lua
  • 变量和循环
  • 条件控制、函数

初识Lua

lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。官网:https://www.lua.org/

HelloWorld

1.在Linux虚拟机的任意目录下,新建一个hello.lua文件

touch hello.lua

2.添加下面的内容
单引号也可以,双引号也可以

print("Hello World!")

3.运行

lua hello.lua

## 变量和循环

数据类型

数据类型 描述
nil 这个最简单,只有值nil属于该类,表示一个无效值(再条件表达式张相当于false)
boolean 包含两个值:false和true
number 表示双精度类型的实浮点数
string 字符串由一对双引号或单引号来表示
function 由C或Lua编写的函数
table Lua中的表(table)其实的一个“关联数组”(associative arrays),数组的索引可以是数字、字符串或表类型。在Lua里,table的创建是通过“构造表达式”来完成,最简单构造表达式是{},用来创建一个空表。

可以利用type函数测试给变量或者值的类型:

print(type("Hello world"))
String

print(type(10.4*3))
number

变量

Lua声明变量的时候,并不需要指定数据类型:

local是局部变量的意思,可以不写local,那就是全局变量

-- 声明字符串(字符产拼接是用..)
local str = 'hello' .. 'world'
-- 声明数字
local num = 21
-- 声明布尔类型
local flag = true
-- 声明数组 key为索引的table
local arr = {
    
    'java','python','lua'}
-- 声明table,类似java的map
local map = {
    
    name='Jack',age=21}

访问table:

-- 访问数组,lua数组的角标从1开始
print(arr[1])
-- 访问table
print(map['name'])
print(map.name)

循环

数组、table都可以利用for循环来遍历:

  • 遍历数组
-- 声明数组 key为索引的 table
local arr = {
    
    'java','python','lua'}
-- 遍历数组
for index,value in ipairs(arr) do
	print(index, value)
end
  • 遍历table:
-- 声明map,也就是table
local map = {
    
    name='Jack',age=21}
-- 遍历table
for key,value in pairs(map) do
	print(key,value)
end

条件控制、函数

函数

定义函数的语法

function 函数名(argument1,argument2,argument3)
	-- 函数体
	return 返回值
end

例如,定义一个函数,用来打印数组:

扫描二维码关注公众号,回复: 15384661 查看本文章
function printArr(arr)
	for index,value in ipaird(arr) do
		print(value)
	end
end

条件控制

类似Java的条件控制,例如if、else语法:

if(布尔表达式)
then
	-- [布尔表达式 true 时执行该语句块 --]
else
	-- [布尔表达式 true 时执行该语句块 --]
end

与java不同,布尔表法式中的逻辑运算是基于英语单词:

操作符 描述 实例
and 逻辑与操作符。若A为false,则返回A,否则返回B。 (A and B)为false。
or 逻辑或操作符。若A为true,则返回A,否则返回B。 (A or B)为true。
not 逻辑非操作符。与逻辑运算结果相反,如果条件为true,逻辑非为false not(A and B )为true。

案例:自定义函数,打印table

需求:自定义一个函数,可以打印table,当参数为nil时,打印错误信息

local function printArr(arr)
	if(not arr) then
		print('数组不能为空!')
		return nil
	end
	for i,val in ipairs(arr) do
		print(val)
	end
end

local arr2 = {
    
    100, 200, 300}
printArr(arr2)
printArr(nil)
vi hello.lua
lua hello.lua

100
200
300
数组不能为空!

猜你喜欢

转载自blog.csdn.net/weixin_42594143/article/details/131221605
今日推荐