lua学习笔记7(函数的学习)

print("*****************************函数的学习*******************************")
print("*****************************无参数无返回值函数的学习*******************************")
function f1()
	print("f1函数")
end
f1()
f2=function()--使用这种方式就不能给后面的函数取名字不然会报错
	print("f2函数")
end
f2()
print("*****************************有参数函数的学习*******************************")
function f3(a)
	print(a)
end
f3(114514)
f3("谢谢你泰罗")
f3(true)
f3()--不传参数默认为nil
f3(8848,5558,1919)--传的过多后面的会被丢弃
print("*****************************有返回值的函数的学习*******************************")
function f4(a)
	return a,"114514",true
end
--多返回值时,在前面申明多个变量即可
--如果变量不够或者过多不影响,返回值会截取对应位置的值,如果过多会返回nil
temp1,temp2,temp3,temp4=f4("1")
print(temp1)
print(temp2)
print(temp3)
print(temp4)
print("*****************************函数的类型*******************************")
f5=function()
	print("你干嘛,哎呦")
end
print(type(f5))--函数的类型就是function
print("*****************************函数的重载*******************************")
--函数名相同 参数类型不同 或者参数个数不同
--lua中函数不支持重载
--默认调用最后一个声明的函数
function f6()
	print("谢谢你赛文")
end
function f6(a)--这个会覆盖上面的函数
	print(a)
end
f6()--这个会打印nil而不是"谢谢你赛文"
f6("谢谢你泰罗")
print("*****************************变长参数*******************************")
function f7(...)
	--变长参数使用 用一个表存起来再使用
	arg={...}
	for i=1,#arg do--循环遍历出表的数据
		print(arg[i])
    end
end
f7(114514,"你就是个笨蛋",true,4,5,6)
print("*****************************函数嵌套*******************************")
function f8()
	return function()
		print(1145114)
	end
end
f9=f8()
f9()
--闭包
function f9(x)
	return function(y)
		return x+y
    end
end
f10=f9(10)
print(f10(5))--我觉得可以这样理解因为f10表示的是f9这个函数,f10()就表示函数里面的函数(如果不对欢迎指正)

输出

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

隐私计算实训营学习九:隐语多方安全计算在安全核对的行业实践

文章目录 一、业务背景:安全核对产生的土壤二、产品方案:从试点到规模化的路三、技术共建:与隐语的共同成长 一、业务背景:安全核对产生的土壤 业务背景:很多粗放使用数据的方式被新出台的法律法规所规范,…

【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(七)- 向量算术指令格式

1. 引言 以下是《riscv-v-spec-1.0.pdf》文档的关键内容: 这是一份关于向量扩展的详细技术文档,内容覆盖了向量指令集的多个关键方面,如向量寄存器状态映射、向量指令格式、向量加载和存储操作、向量内存对齐约束、向量内存一致性模型、向量…

【unity】【C#】延时调用(协程)和场景管理

文章目录 什么是协程协程的应用 - IEnumerator如何控制协程的暂停协程的另一种写法 - Invoke场景管理 多看代码块中的注释 什么是协程 A coroutine alows vou to spreacwhere it left off on the following anc return control toolinencoeframe. 协程允许您将任务分布在多个帧…

拦截器抛出异常无法被全局异常处理器捕获问题

文章目录 基本说明问题描述问题原因解决方法前端执行的所有请求都通过Controller,而不是直接访问html定义一个/error路径的方法 总结 基本说明 我的前后端项目是放在一起的,前后端都是由springMVC进行控制,但是现在我在拦截器的preHandle方法…

HAL STM32主从定时器联级使用

HAL STM32主从定时器联级使用 具体介绍参考STM32参考手册 🌿主从定时器联级:使用一个定时器作为另一个定时器的预分频器。 🍁时钟关系: 🌿TIM1 和TIM8 控制寄存器 2(TIMx_CR2)相关位: 🔖主…

Redis性能管理及主从复制、哨兵的配置与部署

一、redis性能管理 1.1 查看Redis内存使用 1.2 内存碎片率 1.3 内存使用率 1.3.1 避免内存交换发生的方法 1.4 内回收key 1.4.1 配置文件中修改 maxmemory-policy 属性值 1.5 缓存穿透 1.5.1 原因 1.5.2 条件 1.5.3 解决方案 1.6 缓存击穿 1.6.1 原因 1.6.2 现象…

移位运算与乘法

描述 题目描述: 已知d为一个8位数,请在每个时钟周期分别输出该数乘1/3/7/8,并输出一个信号通知此时刻输入的d有效(d给出的信号的上升沿表示写入有效) 信号示意图: 波形示意图: 输入描述&#…

Leetcode 215. 数组中的第K个最大元素

心路历程: 这道题本质上是排序不完全的过程,而且这道题有bug,直接用python的排序算法其实就能AC。 可以按照快排排到找到k-1个large元素的思维去做,不过这道题需要考虑空间复杂度,所以需要用指针快排。 其实也可以考虑…

SUPS:一种用于自动驾驶的仿真地下泊车场景数据集

SUPS:一种用于自动驾驶的仿真地下泊车场景数据集 附赠自动驾驶学习资料和量产经验:链接 摘要 本文介绍了SUPS:一种用于自动驾驶的仿真地下泊车场景数据集。随着自动驾驶的范围扩大,自动地下泊车引起了人们极大的关注。自动驾驶汽…

【stm32】软件I2C读写MPU6050

软件I2C读写MPU6050(文章最后附上源码) 编码 概况 首先建立通信层的.c和.h模块 在通信层里写好I2C底层的GPIO初始化 以及6个时序基本单元 起始、终值、发送一个字节、接收一个字节、发送应答、接收应答 写好I2C通信层之后,再建立MPU6050的.c和.h模块 基于I2C通…

京东云幻兽帕鲁4核16G服务器优惠价格26元1个月、398元一年

京东云幻兽帕鲁4核16G服务器优惠价格26元1个月、658元1年、三年3098元,配置为:轻量云主机4C16G-100G SSD系统盘-5M带宽-1000G月流量 华北-北京,京东云优惠活动 yunfuwuqiba.com/go/jd 活动链接打开如下图: 幻兽帕鲁4核16G服务器优…

计算机网络-TCP重传、滑动窗口、流量控制、拥塞控制

重传机制 超时重传:超时重传时间(RTO)设定为略大于RTT(动态)。触发场景包括自己发送的数据包丢失和别人给自己的回应数据包丢失。启动重传机制后如果还没有收到数据包,则RTO设置为上次的两倍,直…

双连通分量算法

1. 连通图概念 连通图:无向图任意两点之间存在通路。 强连通:有向图(前提)中,任意两点都有至少一条通路,则此图为强连通图。 弱连通图:将有向图的有向边换成无向边得到的图是连通图&#xff0c…

Tomcat管理配置

Tomcat管理配置 1 host-manager项目2 manager项目 Tomcat 提供了Web版的管理控制台,位于webapps目录下。Tomcat 提供了用于管理Host的host-manager和用于管理Web应用的manager。 1 host-manager项目 Tomcat启动之后,可以通过 http://localhost:8080/ho…

Cortex-M7 外设(peripherals)总览

1 PPB内存映射总览 由Cortex-M7的内存映射模型可知,0xE000_0000~0xE00F_FFFF地址空间为私有外设总线 (Private peripheral bus,PPB)的内存区域,其具体的地址映射如表1所示。 表1 PPB寄存器内存映射 其中,注释后缀的相关含义如…

5.5.1MFC对话框——文件对话框

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系将于24小时内删除 目录 1.实验原理 2.示例说明 1.实验原理 CFileDialog类 用CFileDialog类提供的通用文件对话框,实现Windows标准的【打开】和【另存为】功能。 CFileD…

前端canvas项目实战——在线图文编辑器(八):复制、删除、锁定、层叠顺序

目录 前言一、效果展示二、实现步骤1. 复制2. 删除3. 锁定4. 层叠顺序 三、实现过程中发现的bug1. clone方法不复制自定义属性2. 复制「锁定」状态的对象,得到的新对象也是「锁定」状态 四、Show u the code后记 前言 上一篇博文中,我们细致的讲解了实现…

如何在没有备份的情况下从 iPad 恢复照片?

有很多操作都可能导致iPad照片丢失,包括误删除、出厂设置、iPad的iOS更新等。如果没有备份,似乎没有办法找回它们。然而,即使您将备份保留在 iCloud 或iTunes上,这些方式也需要您的 iPad 首先重置,从而用备份内容覆盖当…

Java-类型转换

Java数据类型转换的规则掌握后,将使我们对以后的学习事半功倍,下面是我列出的一些重点。 类型转换 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。底到高依次是:byte,short,char->int->lo…

AJAX 原理

一、AJAX原理 - XMLHttpRequest 定义: 关系:axios 内部采用 XMLHttpRequest 与服务器交互。 好处:掌握使用 XHR 与服务器进行数据交互,了解 axios 内部原理。 1.1 使用 XMLHttpRequest: 步骤: 1. 创建 XM…