主要掌握:

1>虚变量 --- 一个下划线

2>lua将函数的可变参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域n表示参数的个数。

 do
function fun(x, y, ...)
end fun()  --- x = 1, y = nil, arg = {n = 0}
fun(,)   --- x = 1, y = 2 , arg = {n = 0}
fun(,,,)   --- x = 1, y = 2 , arg = {3, 4; n = 2}
end

如果一个函数是多值返回,我们不需要其全部的返回值,只需要其中的部分值,该如何做?

处理方式有一下三种:

1、定义对应数量的变量,一一接收,然后按需所取

2、用虚变量接收无用的返回值,定义新变量来接收所需要的值

3、利用函数的可变参数,定义一个方法,根据索引取需要的返回值

以下是示例代码:

 do
tab = {, } fun = unpack; --返回tab中的所有元素 --现在我们只需要 fun 的第二个返回值
--做法有三 --1、定义对应数量的变量
a, b = fun(tab);
print(b) --2、用虚变量
_, x = fun(tab);
print(x) --3、利用函数的可变参数,定义一个方法
function select(n, ...)
return arg[n]
end
print(select(, fun(tab)))
end

lua --- 函数的可变参数的更多相关文章

  1. 【Java学习笔记】函数的可变参数

    package p2; public class ParamterDemo { public static void main(String[] args) { int sum1 = add(4,5) ...

  2. php匿名函数和可变参数函数

    php匿名函数和可变参数函数 简介 直接上代码了: <?php $test1 = function($value) { echo $value; }; $test1('HelloWorld'); ...

  3. Python学习之路:函数传递可变参数与不可变参数

    函数传参的方法: 太基础了,8说了 直接上重点 一.可变参数的传递 可变参数有:列表.集合.字典 直接上代码: a = [1, 2] def fun(a): print('传入函数时a的值为:', a ...

  4. C语言的本质(18)——函数的可变参数

    一般而言,在设计函数时会遇到许多数学和逻辑操作,是需要一些可变功能.例如,计算数字串的总和.字符串的联接或其它操作过程. 实现一个函数,要求在函数中计算传入的所有参数之和,并输出到屏幕上.这个函数实现 ...

  5. js函数的可变参数

    //对于js的可变参数的清空,在定义函数式不需要写上参数, 在函数内部使用argument对象可以 直接获取参数个数等信息 //在调用函数式可以传递任意个数的参数 function text(){ v ...

  6. Scala函数使用可变参数

    scala同java一样,在定义函数的时候支持接收可变长参数列表,即最后一个参数的可以被重复.示例代码如下: 结果: 在此代码中我们定义函数printInfo接收变长参数列表,其最后一个参数names ...

  7. Python 函数(可变参数)

    在python函数中,可以定义可变参数,顾名思义,可变参数就是,传入的参数是可变的例如,给定一组数字a,b,c...  请计算a2 + b2 + c2 + …… 要定义出这个函数,我们必须确定输入的参 ...

  8. python 函数传递可变参数的用法

    可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c……,请计算a2 ...

  9. 函数、可变参数、keyword-only参数、实参解构

    函数的数学定义:y=f(x) ,y是x的函数,x是自变量.y=f(x0, x1, ..., xn) python中的函数: 由函数名称.参数列表.和若干语句组成的语句块构成,完成一定的功能,是组织代码 ...

随机推荐

  1. java jdbc->mycat->oracle SqlException异常中文信息乱码解决

    mycat字符集gbk oracle字符集gbk 原jdbc连接串: base.jdbc.url=jdbc:mysql://127.0.0.1:3306/XXX?useUnicode=true& ...

  2. Quick Find (QF)

    Quick Find 顾名思义就是快速查找,构建一个数组,通过下标即可迅速查找其id Union and Find:构建一个数组,下标为索引,数组元素的值为其id,初始id和索引相同 Union(p, ...

  3. Python 操作 mysql数据库的一个小小的基础案例,小白新手,以备后用~~

    model.py 中的代码 # Create your models here. # 书和作者一对多 class Author(models.Model): name = models.CharFie ...

  4. openvpn server setup

    Set Up an OpenVPN Server client access 内部环境搭建

  5. openstack components internal relations

    1.  各个组件之间可以互相调用(都是common sense) conductor 负责DB的操作. 各个组件之间通过RPC, 序列化通过oslo_versionedobjects. 2. 具体调用 ...

  6. webpack对于引入的模块无法智能代码提示

    前端模块太多了,模块里的方法比较难记住,所以我们一般靠的都是IDE的代码提示. 但是有时候我们会发现对于引入的模块没有代码提示,我也安装了模块呀,为什么没有代码提示? 主要是package.json的 ...

  7. Codeforces 375C Circling Round Treasures - 最短路 - 射线法 - 位运算

    You have a map as a rectangle table. Each cell of the table is either an obstacle, or a treasure wit ...

  8. java基础篇之理解synchronized的用法

    Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchronized(this ...

  9. noip模拟【array】

    array by ysy [题目描述] 给定一个长度为n的数列,每次你可以进行以下操作之一: (1)将一个数+a: (2)将一个数-a: (3)将一个数+b: (4)将一个数-b: 你需要将所有数全部 ...

  10. IDEA移动到另一电脑

    idea当电脑迁移后,可以直接将已安装的idea目录进行迁移(要保证迁移前后项目目录绝对路径相同) 步骤: 1.将idea的安装目录复制到另一台电脑上 2.将IDEA相关的配置路径下的目录页复制到另一 ...