lua学习笔记之函数
1、概述
函数只有一个参数,并且参数类型是字符串字面量或者表对象构造器,则括号是可选的
调用一个函数,可以传与函数定义数不相等个数的参数。lua会调整参数个数为函数定义的参数个数,将多余的参数丢弃,将缺少的参数补齐为nil
2、多结果
lua函数可以返回多个结果。在函数定义中,return语句中列出多个。
lua在调用函数中根据情况调整结果数。当调用函数作为语句时,会丢弃函数返回结构。当调用作为表达式时,只保持第一个结果。当调用作为表达式列表的最后一个表达式时,返回所有结果。列表会出现在以下四种情况下
- 多赋值
- 函数调用的参数列表
- 表构造器
- 返回语句
3、变参
函数定义参数列表中的...表示是变参的。函数定义中访问变参是通过三点。三点表达式称为变参表达式。
变参迭代,可以使用{...}表达式来收集到表中。但是当变参中有nil值时,{...}不是一个合适的顺序表。可以使用函数table.pack,来创建表,并且表中有字段n表示参数个数。
另外一种方式是使用select函数。返回第n个参数后的所有参数,否则返回变参参数的个数
当使用select,使其返回的结果数适配到1时,可以认为select(n, ...)是取的第n个参数
4、table.unpack
返回列表中的所有元素。
一个重要的应用场景就是通用调用。
lua学习笔记之函数相关推荐
- Lua学习笔记3. 函数可变参数和运算符、转义字符串、数组
1. Lua函数可以接受变长数目的参数,和C语言类似,在函数的参数列表中使用(...)表示函数可以接受变长参数 lua函数将参数存放在一个table中,例如arg,那么#arg可以获得参数的个数 fu ...
- Lua学习笔记6:C++和Lua的相互调用
曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项目啦,只是为什么 ...
- Lua 学习笔记(一)
Lua学习笔记 1.lua的优势 a.可扩张性 b.简单 c.高效率 d.和平台无关 2.注释 a.单行注释 -- b.多行注释 --[[ --]] 3.类型和 ...
- 微信小程序连接物联网(二):NodeMCU Lua学习笔记
索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...
- lua 学习笔记---游戏开发第一步
lua 学习笔记-从数组开始 数组 数组大小范围不一定需要在声明是确定,可以改变 一维数组 例 > array = {"Lua", "lualu"} &g ...
- python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用
本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...
- Python学习笔记:函数(Function)
Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...
- php中声明一个函数,php学习笔记之 函数声明
/* 函数定义: * 1.函数是一个被命名的 * 2.独立的代码段 * 3.函数执行特定任务 * 4.并可以给调用它的程序返回一个值 * * 函数的优点: * 1.提高程序的重用性 * 2.提高程序的 ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
最新文章
- ganglia metric 默认监控项翻译
- layui表格使用复选框批量删除_word表格技巧:如何对表格进行样式批处理
- MS SQL入门基础:移动数据库
- float与double的范围和精度
- javaScript一些函数--Math()
- RGB ECT 4BIT 压缩后质量远高于RGB ETC2 4BIT
- 经典网页设计:10个响应式设计的国外购物网站
- oracle 除重更新,oracle数据库11.2.0.3升级到11.2.0.4
- mysql event demo_MySQL定时任务event
- 《金字塔原理》读书笔记(全)
- C语言笔记 · ASCII码表
- PS2019橡皮擦工具、背景橡皮擦工具、魔术橡皮擦工具
- stay here forever中文歌词
- Unity 艺术字体制作
- IBUS-WARNING **: 09:23:08.407: The owner of /home/cl/.config/ibus/bus is not root!
- 计算机一级如何启动ie浏览器,ie,详细教您怎么解决ie浏览器打不开的问题
- 点餐小程序系统/基于微信小程序的点餐系统/点餐平台网站
- 关于Verilog中readmemb系统函数
- PDF怎么合并?教你2个免费一键合并PDF的方法
- linux入门(二【粉丝版--隐私】)
热门文章
- POJ 2481 Cows POJ 2352 Stars(树状数组妙用)
- 《博客园精华集》Sharepoint+MOSS分册第2轮筛选结果文章列表
- Iframe中的SSRS报表中使用windows.open在新窗口中不能打开URL中的问题
- Asp.Net大型项目实践(7)-用Unity实现AOP之事务处理+为啥要用AOP(附源码)
- sql 优化之关于null 和数据类型
- 关于存储过程不直接返回结果集的问题
- python自动化脚本实例100条-自动化运维基础实例解析-Python批量登录到服务器执行任务...
- python编程爱心-520用Python画一颗特别的爱心送给她
- python怎么导入文本-Python 导入文件问题
- python画图三维-Python三维绘图之Matplotlib库的使用方法