Lua语法结构

news2024/11/26 14:55:57

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

--table

table1 = {} --空表
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) do
	print(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 
  then
		return n
	else
		return n*fact(n-1)
	end
end

print(fact(5))


function ReadMap(table,func)
	for k,v in pairs(table) do
		func(k,v)
	end
end


function func(k,v)
	print("key: "..k)
	print("value: "..v)
end


fruits = {apple = 5,banana = 10,watermelon = 20}
ReadMap(fruits,func)

匿名函数

myprint = function(param)
	printFunc(param)
end

function printFunc(param)
	print("打印:"..param)
end

myprint(90)

param : 里面是一个table

变量

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

a = 5 -- 全局变量
print(type(a))


a = "hello World"
print(type(a))


do
	local b = 10
	print(a)
	print(b) -- 10
end

print(a)
print(b) -- nil

多变量赋值

function test(a,b)
	return a,b
end


a,b = test(1,2)
print(a..b)

循环

a = 0
while(a < 5) do
	if(a%2 == 0) then
		print(a)
	end
	a = a+1
end

for i=0,10,1 do
	print(i)
end

--repeat

i = 2
repeat
	print(i)
	i = i*2
until(i > 10) --循环截至条件


for i =1,10,1 do
	j=1
	while j <= i do
		print(j)
		j= j+1
	end
end


流程控制

a = 7

if(a>10) then
	print("a大于10")
elseif a > 5 then
	print("a大于5")
elseif a > 5 then
	print("a大于0")
else
	print("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.coloradmin.cn/o/978581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis-Plus排除不必要的字段

查询学生信息排除年龄列表 &#x1f4da;&#x1f50d; 使用MyBatis-Plus排除某些字段。如果你想要进行查询&#xff0c;但又不需要包含某些字段&#xff0c;那么这个功能将非常适合你。&#x1f50d;&#x1f393;&#x1f4dd; 1. 学生信息查询-排除年龄列表 在使用 MyBat…

Vue.js基础(一)

目录 1、{{ }} 文本插值 2、v-html原始html 3、v-bind Attribute&#xff08;属性&#xff09;绑定\三元运算符 4、v-for列表渲染 5、v-on监听事件 6、事件调用方法 7、v-model表单的输入绑定 8、Props组件交互 父传子 子传父 子传父总结 1、{{ }} 文本插值 <…

手写Spring:第3章-实现Bean的定义、注册、获取

文章目录 一、目标&#xff1a;实现Bean的定义、注册、获取二、设计&#xff1a;实现Bean的定义、注册、获取三、实现&#xff1a;实现Bean的定义、注册、获取3.1 工程结构3.2 实现Bean的定义、注册、获取类图3.3 定义Bean异常3.4 BeanDefinition定义和注册3.4.1 BeanDefinitio…

解决 Spring Boot 与 springfox 的 NullPointerException 问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

MRI多任务技术及应用

目录 一、定量心血管磁共振成像&#xff08;CMR&#xff09;的改进方法二、磁共振多任务三、磁共振多任务的成像框架四、磁共振多任务的图像模型和采样和重建策略五、利用MR多任务进行快速三维稳态CEST(ss-CEST)成像5.1 利用MR多任务进行快速三维稳态CEST(ss-CEST)成像介绍5.2 …

嵌入式学习笔记(14)位置有关编码

位置无关编码&#xff08;PIC,position independent code&#xff09;&#xff1a;汇编源文件被编码成二进制可执行程序时编码方式与位置&#xff08;内存地址&#xff09;无关。在我们写程序时&#xff0c;必须给链接器指定地址。将来的程序被执行时必须放在当时链接时给定的地…

iPhone照片导入电脑的绝佳教程,赶快get起来!

为什么都说苹果手机拍照比安卓手机好看&#xff1f;因为苹果手机拍照更加真实&#xff0c;其镜头和硬件能让照片更好地接近原始色彩。手机拍照好看就会让人忍不住多拍几张&#xff0c;久而久之手机内存就满了。有什么方法能将照片保存到电脑上吗&#xff1f;iPhone照片导入电脑…

《vue3实战》运用push()方法实现电影评价系统的添加功能

目录 前言 电影评价系统的添加功能是什么&#xff1f; 电影评价系统的添加功能有什么作用&#xff1f; 一、push&#xff08;&#xff09;方法是什么&#xff1f;它有什么作用&#xff1f; 含义&#xff1a; 作用&#xff1a; 二、功能实现 这段是添加开始时点击按钮使…

私募证券基金动态-23年8月报

成交量&#xff1a;8月日均8,252.00亿元 8月A股两市日均成交8,252.00亿元&#xff0c;环比下降12.23%、同比下降18.11%。8月整体23个交易日&#xff0c;仅有3个交易日单日成交金额过万亿&#xff0c;且成交量起伏较大&#xff0c;单日成交金额最低仅有6805.32亿元&#xff08;…

C# 实现电子签名

本项目基于Emgu.CV&#xff08;C#下OpenCv的封装&#xff09;开发的&#xff0c;编译器最新版Vs2022&#xff0c;编译环境x86 直接看效果图 1.主页面 2.我们先看手写的方式&#xff1a; 点击确认就到主界面&#xff0c;如下 &#xff1a; 点击自动适配-&#xff0c;再点击生成…

windows安装向量数据库milvus

本文介绍windows下安装milvus的方法。 一.Docker安装 1.1docker下载 首先到Docker官网上下载docker:Docker中文网 官网 1.2.安装前前期准备 先使用管理员权限打开windows powershell 然后在powershell里面输入下面那命令&#xff0c;启用“适用于 Linux 的 Windows 子系统”…

JMeter压力测试入门教程

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试但后来扩展到其他测试领域。 它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java 对象、数据库&#xff0c; FTP服务器, 等等。J…

JavaScript中的深拷贝和浅拷贝

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 浅拷贝&#xff08;Shallow Copy&#xff09;&#xff1a;⭐深拷贝&#xff08;Deep Copy&#xff09;&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带…

数据结构day7栈-顺序栈的实现

用指针比用数组好&#xff0c;这样用户可以自己指定空间的大小&#xff0c;有参与感。 全部代码: main.c #include <stdio.h> #include <string.h> #include "sqstack.h"int main(int argc, char *argv[]) {sqstack *s;int i;s stack_create(100);if(…

数据结构 - 单链表

文章目录 目录 文章目录 一、什么是链表? 线性表: 顺序表: 二、链表的分类和实现 分类: 实现: 1.创建节点类 2.创建单链表 1.addTail(尾增) 2.删除节点值为key的第一个节点 3.插入节点(在指定位置) 4.获取链表长度 总结 前言 大家好,这篇博客给大家讲一下什么是…

《代码随想录》刷题笔记——数组篇【java实现】

*二分查找 题目链接 https://leetcode.cn/problems/binary-search/ 左闭右闭区间实现 时间复杂度&#xff1a;O(log n)空间复杂度&#xff1a;O(1) /*** 左闭右闭写法** param nums* param target* return*/ public static int search1(int[] nums, int target) {if (nums…

关于工信部发布的app备案以及小程序备案流程

一、相关政策 通知&#xff1a;https://beian.miit.gov.cn/#/Integrated/lawStatute 腾讯备案&#xff1a;网站备案 首次备案-网站备案-文档中心-腾讯云 阿里备案&#xff1a;网站备案_ICP备案_备案迁移_备案-阿里云 二、遇到的问题 APP备案 安卓获取平台公钥方法&#xf…

Vue + Element UI 前端篇(九):接口格式定义

接口请求格式定义 前台显示需要后台数据&#xff0c;我们这里先把前后端交互接口定义好&#xff0c;没有后台的时候&#xff0c;也方便用mock模拟。 接口定义遵循几个规范&#xff1a; 1. 接口按功能模块划分。 系统登录&#xff1a;登录相关接口 用户管理&#xff1a;用户…

Redis-1.4-过期策略

1 设置带过期时间的 key # 时间复杂度&#xff1a;O&#xff08;1&#xff09;&#xff0c;最常用方式 expire key seconds# 字符串独有方式 setex(String key, int seconds, String value)除了string独有设置过期时间的方法&#xff0c;其他类型都需依靠expire方法设置时间&a…

说说MySQL回表查询与覆盖索引

分析&回答 什么是回表查询&#xff1f; 通俗的讲就是&#xff0c;如果索引的列在 select 所需获得的列中&#xff08;因为在 mysql 中索引是根据索引列的值进行排序的&#xff0c;所以索引节点中存在该列中的部分值&#xff09;或者根据一次索引查询就能获得记录就不需要…