1、概述

函数只有一个参数,并且参数类型是字符串字面量或者表对象构造器,则括号是可选的

调用一个函数,可以传与函数定义数不相等个数的参数。lua会调整参数个数为函数定义的参数个数,将多余的参数丢弃,将缺少的参数补齐为nil

2、多结果

lua函数可以返回多个结果。在函数定义中,return语句中列出多个。

lua在调用函数中根据情况调整结果数。当调用函数作为语句时,会丢弃函数返回结构。当调用作为表达式时,只保持第一个结果。当调用作为表达式列表的最后一个表达式时,返回所有结果。列表会出现在以下四种情况下

  • 多赋值
  • 函数调用的参数列表
  • 表构造器
  • 返回语句

3、变参

函数定义参数列表中的...表示是变参的。函数定义中访问变参是通过三点。三点表达式称为变参表达式。

变参迭代,可以使用{...}表达式来收集到表中。但是当变参中有nil值时,{...}不是一个合适的顺序表。可以使用函数table.pack,来创建表,并且表中有字段n表示参数个数。

另外一种方式是使用select函数。返回第n个参数后的所有参数,否则返回变参参数的个数

当使用select,使其返回的结果数适配到1时,可以认为select(n, ...)是取的第n个参数

4、table.unpack

返回列表中的所有元素。

一个重要的应用场景就是通用调用。

lua学习笔记之函数相关推荐

  1. Lua学习笔记3. 函数可变参数和运算符、转义字符串、数组

    1. Lua函数可以接受变长数目的参数,和C语言类似,在函数的参数列表中使用(...)表示函数可以接受变长参数 lua函数将参数存放在一个table中,例如arg,那么#arg可以获得参数的个数 fu ...

  2. Lua学习笔记6:C++和Lua的相互调用

    曾经一直用C++写代码.话说近期刚换工作.项目组中的是cocos2dx-lua,各种被虐的非常慘啊有木有. 新建cocos2dx-lua项目.打开class能够发现,事实上就是C++项目啦,只是为什么 ...

  3. Lua 学习笔记(一)

    Lua学习笔记 1.lua的优势 a.可扩张性     b.简单     c.高效率     d.和平台无关 2.注释 a.单行注释 --        b.多行注释 --[[  --]] 3.类型和 ...

  4. 微信小程序连接物联网(二):NodeMCU Lua学习笔记

    索引 这是用微信小程序遥控开门的系列文章,具体微信小程序连接物联网的代码在第三章提及. 微信小程序连接物联网(一):初始化ESP8266 NodeMCU 微信小程序连接物联网(二):NodeMCU L ...

  5. lua 学习笔记---游戏开发第一步

    lua 学习笔记-从数组开始 数组 数组大小范围不一定需要在声明是确定,可以改变 一维数组 例 > array = {"Lua", "lualu"} &g ...

  6. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

  7. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  8. php中声明一个函数,php学习笔记之 函数声明

    /* 函数定义: * 1.函数是一个被命名的 * 2.独立的代码段 * 3.函数执行特定任务 * 4.并可以给调用它的程序返回一个值 * * 函数的优点: * 1.提高程序的重用性 * 2.提高程序的 ...

  9. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

最新文章

  1. ganglia metric 默认监控项翻译
  2. layui表格使用复选框批量删除_word表格技巧:如何对表格进行样式批处理
  3. MS SQL入门基础:移动数据库
  4. float与double的范围和精度
  5. javaScript一些函数--Math()
  6. RGB ECT 4BIT 压缩后质量远高于RGB ETC2 4BIT
  7. 经典网页设计:10个响应式设计的国外购物网站
  8. oracle 除重更新,oracle数据库11.2.0.3升级到11.2.0.4
  9. mysql event demo_MySQL定时任务event
  10. 《金字塔原理》读书笔记(全)
  11. C语言笔记 · ASCII码表
  12. PS2019橡皮擦工具、背景橡皮擦工具、魔术橡皮擦工具
  13. stay here forever中文歌词
  14. Unity 艺术字体制作
  15. IBUS-WARNING **: 09:23:08.407: The owner of /home/cl/.config/ibus/bus is not root!
  16. 计算机一级如何启动ie浏览器,ie,详细教您怎么解决ie浏览器打不开的问题
  17. 点餐小程序系统/基于微信小程序的点餐系统/点餐平台网站
  18. 关于Verilog中readmemb系统函数
  19. PDF怎么合并?教你2个免费一键合并PDF的方法
  20. linux入门(二【粉丝版--隐私】)

热门文章

  1. POJ 2481 Cows POJ 2352 Stars(树状数组妙用)
  2. 《博客园精华集》Sharepoint+MOSS分册第2轮筛选结果文章列表
  3. Iframe中的SSRS报表中使用windows.open在新窗口中不能打开URL中的问题
  4. Asp.Net大型项目实践(7)-用Unity实现AOP之事务处理+为啥要用AOP(附源码)
  5. sql 优化之关于null 和数据类型
  6. 关于存储过程不直接返回结果集的问题
  7. python自动化脚本实例100条-自动化运维基础实例解析-Python批量登录到服务器执行任务...
  8. python编程爱心-520用Python画一颗特别的爱心送给她
  9. python怎么导入文本-Python 导入文件问题
  10. python画图三维-Python三维绘图之Matplotlib库的使用方法