Lua语法结构

Lua基础

注释

print("hello.")
-- 单行注释的写法
--[[
多行注释的写法
--]]

标识符

关键字

**and **
break
**do **
else
**elseif **
**end **
false
for
**function **
if
in
local
nil
not
or
repeat
return
then
true
until
**while **

数据类型

image.png
nil
** boolean**
** number**
** string**
** function**
** userdata**
thread
** table**

--科学计数法
print(2e+1) -- 2x10^1
print(2e-1)

```lua

–string
print(“hello”…“world”);

print(“1”…“2”)
print(type(“1”…“2”)) – 12 string

print(“1”+“2”)
print(type(“1”+“2”)) --3 number

--tabletable1 = {} --空表
table2 = {f1 = 100,key2 = "value"}print(table1)
print(table2.f1)
print(table2.key2)
print(table2["key2"])--使用索引来获取
fruits = {"apple","pear","oranger"}
for i,j in pairs(fruits) doprint(i.."|"..j)
end
print(fruits[1])
print(fruits[2])
print(fruits[3])--table是自动扩容的fruits[1] = "newApple"
print(fruits[1])

table的索引是从1开始

函数

--函数
--函数function fact(n)if n == 1 thenreturn nelsereturn n*fact(n-1)end
endprint(fact(5))function ReadMap(table,func)for k,v in pairs(table) dofunc(k,v)end
endfunction func(k,v)print("key: "..k)print("value: "..v)
endfruits = {apple = 5,banana = 10,watermelon = 20}
ReadMap(fruits,func)

匿名函数

myprint = function(param)printFunc(param)
endfunction printFunc(param)print("打印:"..param)
endmyprint(90)

param : 里面是一个table

变量

lua中变量的类型是可以更改的

a = 5 -- 全局变量
print(type(a))a = "hello World"
print(type(a))dolocal b = 10print(a)print(b) -- 10
endprint(a)
print(b) -- nil

多变量赋值

function test(a,b)return a,b
enda,b = test(1,2)
print(a..b)

循环

a = 0
while(a < 5) doif(a%2 == 0) thenprint(a)enda = a+1
end
for i=0,10,1 doprint(i)
end--repeati = 2
repeatprint(i)i = i*2
until(i > 10) --循环截至条件for i =1,10,1 doj=1while j <= i doprint(j)j= j+1end
end

流程控制

a = 7if(a>10) thenprint("a大于10")
elseif a > 5 thenprint("a大于5")
elseif a > 5 thenprint("a大于0")
elseprint("a小于0")
end

运算符

~=不等于

转义字符

字符串操作

str = "My name is huangjiaqi"
str2 = string.upper(str)
str3 = string.gsub(str,"i","I")index = string.find(str,"name")
str4 = string.reverse(str);print(str)
print(str2)
print(str3)
print(index) --索引从1开始
print(str4)

字符串格式化

image.png

--字符串格式化num1 = 3 ; num2 = 5
str5 = string.format("加法运算:%d+%d = %d",num1,num2,(num1+num2))
print(str5)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/99520.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络的故事——确保Web安全的Https

确保Web安全的Https 文章目录 确保Web安全的Https一、HTTP 的缺点二、HTTP 加密 认证 完整性保护 HTTPS 一、HTTP 的缺点 1、明文传输 通信加密&#xff0c;HTTP协议中没有加密机制&#xff0c;但是可以通过SSL(Secure Socket Layer&#xff0c;安全套接字层)或TLE(Transpor…

算法做题记录

一、递推 95.费解的开关 #include<iostream> #include<cstring> using namespace std;const int N 8;char a[N][N],s[N][N]; int T; int ans20,cnt; int dir[5][2]{1,0,-1,0,0,1,0,-1,0,0};void turn(int x,int y) {for(int i0;i<5;i){int xx xdir[i][0];in…

在MySQL中查看数据库和表的数据大小

在MySQL中查看数据库和表的数据大小 在管理和维护MySQL数据库时&#xff0c;了解数据库和表的数据大小是非常重要的。这可以帮助您监控数据库的增长、优化性能以及规划存储需求。本博客将介绍如何使用SQL查询来查看MySQL数据库和表的数据大小。 查看MySQL数据库的总数据大小 …

【开发语言】C语言与Python的互操作详解

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

vscode debug python launch.json添加args不起作用

问题 为了带入参数调试python 程序&#xff0c;按照网上搜到的教程配置了lauch.json文件&#xff0c;文件中添加了"args": [“model” “0” “path”] {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息&#xff0c;请访问: h…

PCL RANSAC分割提取多个空间圆

目录 一、概述二、代码实现三、结果展示1、原始数据2、提取结果四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述 使用PCL分割提取多个空间圆,其核心原理仍然是RANSAC拟合空间圆,这里只是做简单修改…

【广州华锐互动】煤矿设备AR远程巡检系统实现对井下作业的远程监控和管理

煤矿井下作业环境复杂&#xff0c;安全隐患较多。传统的巡检方式存在诸多弊端&#xff0c;如巡检人员难以全面了解井下情况&#xff0c;巡检效率低下&#xff0c;安全隐患难以及时发现和整改等。为了解决这些问题&#xff0c;提高煤矿安全生产水平&#xff0c;越来越多的企业开…

Oracle中LEFT JOIN后AND与WHERE的异同

1、AND 过滤之后再连接 2、WHERE 连接之后再过滤 下面以具体例子来说明&#xff1a; (1)、建表及插入测试数据 --建测试表 create table FACT_TAB ( ID INTEGER,STATUS VARCHAR2(8) ); create table DIM_STATUS ( STSTUS_CLASS VARCHAR2(8),STATUS_CODE VARCHAR2(8),S…

The Sandbox 即将参加韩国区块链周,并带来一系列独家周边活动!

韩国区块链周&#xff08;Korea Blockchain Week&#xff09;即将到来&#xff0c;届时将有成千上万的 NFT 项目、建设者、社区成员、企业家、投资者和爱好者齐聚首尔&#xff0c;分享 Web3 的最新更新和未来愿景。 继成功举办韩流崛起 LAND 销售并宣布多个合作伙伴关系之后&a…

Java低代码开发:jvs-list(列表引擎)功能(一)配置说明

在低代码开发平台中&#xff0c;列表页是一个用于显示数据列表的页面。它通常用于展示数据库中的多条记录&#xff0c;并提供搜索、排序和筛选等功能&#xff0c;以方便用户对数据进行查找和浏览。 jvs-list是jvs快速开发平台的列表页的配置引擎&#xff0c;它和普通的crud 具…

C# winform控件和对象双向数据绑定

实现目的&#xff1a; 控件和对象双向数据绑定 实现结果&#xff1a; 1. 对象值 -> 控件值 2. 控件值 -> 对象值 using System; using System.Windows.Forms;namespace ControlDataBind {public partial class MainForm : Form{People people new People();public Mai…

JavaScript基础语法04——输入输出语法

嗨&#xff0c;大家好&#xff0c;我是雷工。 今天学习JavaScript基础语法&#xff0c;输入输出语法&#xff0c;以下为学习笔记。 1、输出语法&#xff1a; 1.1、alert&#xff08;&#xff09; 作用&#xff1a;界面弹出警告对话框。 示例&#xff1a; <script>aler…