Lua入门学习

Lua脚本语言——Lua脚本基础语法 1、LUA是一门脚本语言 ①、什么是脚本? 脚本语言又被称为扩建的语言,或者动态语言,是一种编程 语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在 被调用时进行解释或编译 ②、 脚本语言的执行 由于脚本语言是纯文本的,所以CPU无法直接执行脚本程序, 而是通过脚本解析器来执行脚本语言 ③、优缺点 优点:快速开发、容易部署、易学易用、动态代码 缺点:不够全面、效率不高、构建代码结构性不高 ④、常用的脚本语言 bash、python、JavaScript、Lua、PHP、ActionScr. 阅读详情

简介

lua是什么

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

特性

支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。

应用场景

游戏开发
独立应用脚本
Web 应用脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如入侵检测系统
redis中嵌套调用实现类似事务的功能
web容器中应用处理一些过滤 缓存等等的逻辑,例如nginx。

安装使用

安装步骤,在linux系统中执行下面的命令。

curl -R -O http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar zxf lua-5.3.5.tar.gz
cd lua-5.3.5
make linux test

再执行lua测试看lua是否安装成功

[root@localhost ~]# lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio

基本语法

定义变量
全局变量,默认的情况下,定义一个变量都是全局变量,

如果要用局部变量 需要声明为local.例如:

-- 全局变量赋值
a=1
-- 局部变量赋值
local b=2 

如果变量没有初始化:则 它的值为nil 这和java中的null不同。

Lua中的数据类型
Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。
在这里插入图片描述
流程控制
(1)if语句

Lua if 语句 由一个布尔表达式作为条件判断,其后紧跟其他语句组成。

语法:

if(布尔表达式)
then
   --[ 在布尔表达式为 true 时执行的语句 --]
end

(2)if…else语句

Lua if 语句可以与 else 语句搭配使用, 在 if 条件表达式为 false 时执行 else 语句代码块。

语法:

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

(3)while循环[满足条件就循环]

Lua 编程语言中 while 循环语句在判断条件为 true 时会重复执行循环体语句。
语法:

while(condition)
do
   statements
end

(4)for循环

Lua 编程语言中 for 循环语句可以重复执行指定语句,重复次数可在 for 语句中控制。

语法: 1->10 1:exp1 10:exp2 2:exp3:递增的数量

for var=exp1,exp2,exp3 
do  
    <执行体>  
end  

var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 “执行体”。exp3 是可选的,如果不指定,默认为1。

(5)repeat…until语句[满足条件结束]

Lua 编程语言中 repeat…until 循环语句不同于 for 和 while循环,for 和 while 循环的条件语句在当前循环执行开始时判断,而 repeat…until 循环的条件语句在当前循环结束后判断。

语法:

repeat
   statements
until( condition )

函数
lua中也可以定义函数,类似于java中的方法。例如:

--[[ 函数返回两个值的最大值 --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end
-- 调用函数
print("两值比较最大值为 ",max(10,4))
print("两值比较最大值为 ",max(5,6))

执行之后的结果:

两值比较最大值为     10
两值比较最大值为     6

表
table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。

Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。

案例:

-- 初始化表
mytable = {}

-- 指定值
mytable[1]= "Lua"

-- 移除引用
mytable = nil

模块
(1)模块定义

模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。

创建一个文件叫module.lua,在module.lua中创建一个独立的模块,代码如下:

-- 文件名为 module.lua
-- 定义一个名为 module 的模块
module = {}
 
-- 定义一个常量
module.constant = "这是一个常量"
 
-- 定义一个函数
function module.func1()
    print("这是一个公有函数")
end
 
local function func2()
    print("这是一个私有函数!")
end
 
function module.func3()
    func2()
end
 
return module

由上可知,模块的结构就是一个 table 的结构,因此可以像操作调用 table 里的元素那样来操作调用模块里的常量或函数。

上面的 func2 声明为程序块的局部变量,即表示一个私有函数,因此是不能从外部访问模块里的这个私有函数,必须通过模块里的公有函数来调用.

(2)require 函数

require 用于 引入其他的模块,类似于java中的类要引用别的类的效果。

用法:

require("<模块名>")
require "<模块名>"

两种都可以。

我们可以将上面定义的module模块引入使用,创建一个test_module.lua文件,代码如下:

-- test_module.lua 文件
-- module 模块为上文提到到 module.lua
require("module")

print(module.constant)

module.func3()

参考自黑马程序员

Lua 从基础入门到精通(非常详细) Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放。这意味着什么呢?这意味着Lua虚拟机可以很方便的嵌入别的程序里,从而为应用程序提供灵活的扩展和定制功能。而整个Lua虚拟机编译后仅仅一百余K,经过适当的裁剪还能做到更小,十分适合嵌入式的开发。Lua 官网Lua 5.3 参考手册 - 目录Lua 在线调试工具LuatOS 在线模拟 - lua在线测试。 阅读详情

相关推荐

Lua基础教程与实践

目录Lua配置、安装、与运行Lua编译与调试环境搭建Lua基本语法1.交互式编程2.脚本式编程Lua中的数据类型1.数据类型展示2.注意事项Lua中的变量全局变量局部变量非局部变量(先看闭包)(upvalue)(实际代指变量而非值)(第一类函数)变量值的交换Lua中的闭包(词法定界)...待续(持续更新中)参考与引用 Lua配置、安装、与运行 1.进入Lua官网:http://www.lua.org——下载Lua 2.下载文件【 lua-5.3.4_Win64bin.zip 】 3.创建一个空文件夹“Lua

Thewen 1万+

Lua语言

该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字local。指定函数名称。函数参数,多个参数以逗号隔开,函数也可以不带参数。函数体,函数中需要执行的代码语句块。函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开。

xiaowu714的博客 8726

编程语言Lua(一):入门介绍、学习资料、项目管理与调试方法

作者: 李佶澳   转载请保留:原文地址   发布时间:2018/10/22 17:10:00 说明 Lua简介 Lua的学习资料 Lua的第三方库和配套工具 Lua的安装 Lua代码的运行 Lua的语法 Lua代码组织方式 Lua Module require函数加载Module的过程 require函数查找Module的路径 Module的版本管理 ...

IT技术快速入门学院的博客 1611

Lua入门使用与基础语法

Lua是一种非常小巧的脚本语言,基于C构建并且完全开源,可以方便的嵌入到各种项目中,当然也可以单独使用。Lua经常被用在很多非脚本语言的项目中,用来扩展脚本功能,提供一定的灵活性。最常见的应用场景就是各类游戏中(比如魔兽世界和愤怒的小鸟)。这篇文章将对相关内容做个入门介绍。

Naisu的各种笔记 7759

超大规模AI集群跨数据中心互联:Scale-Across技术实现与部署实践

分布式系统通过将计算任务分散到多个节点协同执行,实现算力的横向扩展。其核心原理在于网络通信、数据同步和资源调度机制的技术协同。在AI基础设施领域,分布式架构能有效突破单数据中心算力瓶颈,支撑万亿参数大模型训练。特别是面对长距离传输时延和带宽稳定性挑战,需要采用RDMA、确定性网络等关键技术。Scale-Across作为分布式系统的高级形态,通过跨地域多数据中心互联,构建逻辑统一的AI算力池,为超大规模AI训练和全球推理服务提供核心支撑。本文聚焦AI集群跨数据中心互联的技术路径,涵盖全栈优化、网络自治等实践方

chouxuyi9789的博客 399

K-Means聚类算法 — 算法原理、质心计算、距离度量、聚类效果评价及优缺点

分类知识   分类是根据样本某些属性或某类特征(可以融合多类特征),把样本类型归为已确定的某一类别中。机器学习中常见的分类算法有:SVM(支持向量机)、KNN(最邻近法)、Decision Tree(决策树分类法)、Naive Bayes(朴素贝叶斯分类)、Neural Networks(神经网络法)等。   但当对海量数据进行分类时,为了降低数据满足分类算法要求所需要的预处理代价,往往需要选...

zhf的博客 1万+

lua菜鸟教程_初学者必看:Lua入门学习教程

Lua入门学习教程是本文要介绍的内容,主要是来对Lua入门的一个学习,Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言。不幸的是,网上很少有关于这个语言的在线教程。我主要通过阅读其源代码来了解它是怎样工作并且通过一些发布的程序学习它。希望,通过下面的教程,会让学习Lua更加简单。本教程涵盖了Lua5.1。在Lua的每一个版本中都有一些非常不同之处。下面的示例代码将不能在老版本的Lua下运...

weixin_30522983的博客 7540

(详细教程)opencv+pycharm+笔记本摄像头 做一个人脸识别

文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 一、安装opencv-python 这里推荐使用pycharm直接安装opencv-python 打开文件——设置——python解释器——点击+号 搜索opencv-python,点击安装包,等待片刻即可安装好 检查是否安装好,新建一个项目输入以下代码,若无报错则安装好 import cv2 二、准备分类器 咱们使用opencv官方提供的分类器,包括面部识别,侧...

qq_52852432的博客 1万+

Lua入门学习资料

Lua官网 http://www.lua.org/开源脚本语言Lua学习专题 http://tech.it168.com/zt/lua/Lua脚本语言简明入门教程 http://www.jb51.net/article/55394.htm谷歌提供的windows上的Luaforwindows.exe https://code.google.com/archive/p/luaforwindow

funny75的专栏 768

ChatGPT and Claude国内使用站点

这篇博客介绍了不同的AI聊天平台和定价信息,主要对比了ChatGPT和Claude两款产品。文章列出了多个提供聊天服务的AI平台,包括RawChat、ChatGPTPlus、ChatOpens、Wildcard和2233.ai等,并提供了每个平台的网页链接和定价详情。特别关注了Claude平台,介绍了其普通账号与会员账号的不同,以及相关的定价信息。此外,还提到了一些虚拟卡定价和服务细节,为用户选择合适的AI服务提供了多种参考。

nisidjndn的博客 1万+

基于STM32L4XX、HAL库的BQ25713RSNR充电芯片驱动程序设计

define BQ25713_I2C_ADDR (0x6B << 1) // 7位地址为 0x6B,HAL库需要左移一位。// 示例:配置 CHARGE_OPTION_0 寄存器:使能充电,使能 ICO(输入电流优化)reg_data |= (EN_CHG_MASK | EN_ICO_MASK);

zhusl6688的博客 406

em-lua语言入门学习视频。

这是我学习lua语言所参照de 【从零开始做游戏】系列 1.从零开始做游戏-Lua语言基础-1:下载:http://u.115.com/file/f3fd0bd4d1 2.从零开始做游戏-Lua语言基础-2:下载:http://u.115.com/file/f35820c207 3.从零开始做游戏-Lua语言基础-3:下载:http://u.115.com/file/f34f27d

walt999的专栏 899

Ardupilot飞控姿态角与姿态角速度控制过程分析(超长篇)

目录 目录 摘要 1.代码控制过程分析 摘要 本节主要记录自己学习ardupilot飞控代码的姿态角速度的控制过程 1.代码控制过程分析 可以看出:AC_AttitudeControl *attitude_control; //指针对象 virtual void rate_controller_run() = 0;是AC_AttitudeContro...

陌城烟雨 1万+

[每周一更]-(第120期):Lua入门学习指南及示例

Lua(发音:/ˈluːə/)是一个简洁、轻量、可扩展的脚本语言。Lua有着相对简单的C语言API而很容易嵌入应用中。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。多范型脚本指令式过程式基于原型面向对象),函数式。

hmx224_2014的专栏 2405

软件可靠性设计

本文系统介绍了软件可靠性设计与建模的理论框架和实施方法。首先从可靠性定义、核心思想和与建模的关系等理论基础出发,重点阐述了模块化设计、冗余容错、异常处理等六类可靠性设计方法及其技术栈。文章详细分析了可靠性设计在软件生命周期各阶段的应用,并深入探讨了设计与建模的深度结合机制,包括参数影响、验证方法和量化指标。最后提出了覆盖设计、开发、测试和运行四个阶段的落地策略,形成完整的"设计-建模-运行"流程体系。全文强调通过预防性设计和量化建模相结合的方法提升软件系统的可靠性和稳定性。

moton2017的博客 896

[Python + UG NX 二次开发新手教程] 第五课 采用Python / UF 开发模式

在 NX 二次开发里看到的“UF”是的缩写,它是 Siemens 提供的集合,也是整个 NX Open 体系里最贴近内核、历史最悠久的一套接口。相当于 NX 的“系统调用”——只要 NX 能做的事,UF 几乎都能调得动。Siemens 从 NX 12 开始把原来的 C 接口(UF)全部打包进了官方 Python 模块,命名空间为 NXOpen.UF.*,所以只要 NX 安装目录里带了 NXOpen\UF 子模块,就能在 Python 里直接调用 UF 函数。

温良 1004

【Lua学习】Lua入门

Lua入门知识

weixin_42206314的博客 1646

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

lua语言学习-入门总结

    学习一门新的语言入门和起步非常关键,然后就是持之以恒的学习! 总结近期的学习,写一个入门的文章吧! 1 lua 环境安装 Window 系统上安装 Lua window下你可以使用一个叫"SciTE"的IDE环境来执行lua程序,下载地址为: 本站下载地址:LuaForWindows_v5.1.4-46.exe Github 下载地址:https://github.c...

淡水鱼 1262

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

脚本语言Lua简单入门学习笔记

lua入门学习    非等于  ~= 连接号  .. and  or not   只有 false和nil为假其余为真 a and b -- 如果 a 为 false,则返回 a,否则返回 b a or b -- 如果 a 为 true,则返回 a,否则返回 b 表 table {} 最简单  days = {"Sunday", "Monday", "T

筑梦者 1506

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

luaprimer:Lua编程入门的优质学习资源

luaprimer:Lua编程入门的优质学习资源 项目介绍 《Lua编程入门》是一个精心整理的Lua语言学习笔记项目,它以清晰的结构和详尽的解释,帮助初学者快速掌握Lua编程的基础知识。该项目涵盖了Lua的语法、环境配置、标准库、函数、面向对象、协程、Table数据结构、C API交互等多个方面的内容,是Lua学习者的宝贵资料。 项目技术分析 《Lua编程入门》项目采用Markdown格式编写,便...

gitblog_00352的博客 334

Lua中的变量和流控制入门学习例子解析

Lua 是一种轻量级的脚本语言,广泛应用于游戏开发、嵌入式系统和网络编程等领域。以下是 Lua 中变量和流控制的入门学习资料,包括一些详细的例子。

IT老农民的博客 383

Lua 入门学习

一 、简介 (1)、 Lua 语言 快速 简单 灵活 ,因此常用于游戏开发,尤其是 嵌入性的开发,比如,魔兽世界的界面就是用的lua语言 (2)、 更多时候,我们会用c 或者c++ 做功能性开发,而用Lua 做逻辑性开发 (3)、 安装 http://sourceforge.net/projects/luabinaries/?source=typ_redirect

liwenfang140147的博客 630

Lua脚本语言学习总结 入门、复习Lua语言看这一篇就够了

在Lua语言中,只会将false和nil视为假,其他的都视为真,特别是在条件检测中0和空字符串都会认为是真,这个和我们熟悉的大多数语言不太一样。如果对C/C++不太熟悉的同学来说,也没关系,因为天下语言是一家,基本上理解起来都不会太困难。函数被调用的时候,传入的参数个数与定义函数时使用的参数个数不一致的时候,Lua 语言会通过 抛弃多余参数和将不足的参数设为 nil 的方式来调整参数的个数。...

igg08的博客 8358

lua语言入门学习(一)搭建基本的环境并实现运行

lua语言入门学习 本篇文章用来记录自己写lua语言的过程 文章目录lua语言入门学习前言一、lua语言是什么?二、使用步骤1.搭建环境2.开始运行总结 前言 提示:这里可以添加本文要记录的大概内容: 最近来到了一家网络游戏公司做实习,刚入职时的要求就是快速学习lua这门编程语言。 提示:以下是本篇文章正文内容,下面案例可供参考 一、lua语言是什么? 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。说实在话,我感

qq_43108889的博客 1739

【Lua学习笔记】Lua入门

(不是教程,推荐有编程基础的人观看本文)文中主要包含了对菜鸟教程中的一些学习理解,个人感觉Lua语言和Python很多地方相似以下大部分代码和表格摘抄自。

milu_ELK的博客 1643

lua入门学习总结

Lua入门总结 Lua安装步骤 1.官网下载地址地址: www.lua.org. 2.解压,make 3.src文件夹下为lua源码。doc文件夹下为文档。bin文件夹下有两个可执行文件。 lua文件是源代码,是文本文件,它不利于代码的保护。 luac文件是经lua编译器翻译后的字节码文件,是二进制码文件,可直接分享它以利于源码的保护。 Lua基本语法 1.输出(print),注释 print('...

qq_43472191的博客 299
上一篇: 算法--只出现一次的数字
下一篇: 算法--寻找两个正序数组的中位数
CodersCoder
博客等级 码龄10年 90粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值