Lua语法快速入门

本文介绍了Lua语言的入门知识,包括HelloWorld示例、变量和数据类型、循环结构、条件控制和函数,以及Lua在游戏开发、Web应用、安全系统中的应用。重点讲解了如何在Linux环境中使用Lua,包括变量声明、循环遍历和自定义函数等。
摘要由CSDN通过智能技术生成

目录

1.初识Lua

1.1HelloWorld

1.2.变量和循环

1.2.1.Lua的数据类型

1.2.2.声明变量

1.2.3.循环

1.3.条件控制、函数

1.3.1.函数

1.3.2.条件控制

1.3.3.案例


为什么学习Lua语言呢?

Lua的语法简单,学习成本低,它可以在多种操作系统和硬件上运行,如Windows、Linux、Android、iOS等 

1.初识Lua

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

它可以应用在多种场合,例如:

  • 游戏开发:Lua可以作为游戏的逻辑脚本,实现游戏的功能和交互。Lua可以和C/C++等语言无缝集成,提高开发效率和灵活性。许多知名的游戏,如《魔兽世界》、《愤怒的小鸟》、《植物大战僵尸》等都使用了Lua作为脚本语言。
  • 独立应用脚本:Lua可以作为独立的应用程序,执行各种任务和功能。Lua可以调用操作系统的API,实现文件操作、网络通信、图形界面等功能。Lua还可以作为其他应用程序的插件或扩展,增加新的特性和功能。
  • Web应用脚本:Lua可以作为Web服务器的脚本语言,处理Web请求和响应,实现动态网页和Web服务。Lua可以和Nginx、Apache等Web服务器集成,提高性能和并发能力。Lua还可以和数据库、缓存等后端服务交互,实现数据的存储和处理。
  • 扩展和数据库插件:Lua可以作为扩展和数据库的插件,实现自定义的功能和逻辑。Lua可以和MySQL、Redis等数据库集成,提供更灵活的查询和操作方式。Lua还可以和其他扩展和插件协作,实现更复杂的功能。
  • 安全系统:Lua可以作为安全系统的脚本语言,实现入侵检测、防火墙、过滤器等功能。Lua可以和Snort、Suricata等安全工具集成,提供更灵活的规则和策略。Lua还可以和其他安全系统协作,实现更高的安全性。

本文将使用linux来学习Lua

1.1HelloWorld

CentOS7默认已经安装了Lua语言环境,所以可以直接运行Lua代码。

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

2)添加下面的内容

print("Hello World!")  

3)运行

1.2.变量和循环

学习任何语言必然离不开变量,而变量的声明必须先知道数据的类型。

1.2.1.Lua的数据类型

Lua中支持的常见数据类型包括:

​另外,Lua提供了type()函数来判断一个变量的数据类型:

1.2.2.声明变量

Lua声明变量的时候无需指定数据类型,而是用local来声明变量为局部变量:

-- 声明字符串,可以用单引号或双引号,
local str = 'hello'
-- 字符串拼接可以使用 ..
local str2 = 'hello' .. 'world'
-- 声明数字
local num = 21
-- 声明布尔类型
local flag = true

Lua中的table类型既可以作为数组,又可以作为Java中的map来使用。数组就是特殊的table,key是数组角标而已:

-- 声明数组 ,key为角标的 table
local arr = {'java', 'python', 'lua'}
-- 声明table,类似java的map
local map =  {name='Jack', age=21}

Lua中的数组角标是从1开始,访问的时候与Java中类似:

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

Lua中的table可以用key来访问:

-- 访问table
print(map['name'])
print(map.name)

1.2.3.循环

对于table,我们可以利用for循环来遍历。不过数组和普通table遍历略有差异。

遍历数组:

-- 声明数组 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

1.3.条件控制、函数

Lua中的条件控制和函数声明与Java类似。

1.3.1.函数

定义函数的语法:

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

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

function printArr(arr)
    for index, value in ipairs(arr) do
        print(value)
    end
end

1.3.2.条件控制

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

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

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

1.3.3.案例

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

function printArr(arr)
    if not arr then
        print('数组不能为空!')
    end
    for index, value in ipairs(arr) do
        print(value)
    end
end

制作不易,喜欢可以多多支持,每日分享编程知识

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值