select 返回变长参数的总数

简介: `select` 函数需传入一个数字或字符串 "#" 作为选择器,和变长参数。若选择器为数字 n,则返回从索引 n 到末尾的参数列表;若为 "#",则返回参数总数。示例展示了如何使用 `select` 获取并打印参数。在第一个例子中,当选择器为 3 时,输出从第三个参数开始的列表及全部参数。第二个例子中,利用 "#" 获取参数个数,遍历并打印所有参数。

调用 select 时,必须传入一个固定实参 selector(选择开关) 和一系列变长参数。如果 selector 为数字 n,那么 select 返回参数列表中从索引 n 开始到结束位置的所有参数列表,否则只能为字符串 #,这样 select 返回变长参数的总数。

实例
function f(...)
a = select(3,...) -->从第三个位置开始,变量 a 对应右边变量列表的第一个参数
print (a)
print (select(3,...)) -->打印所有列表参数
end

f(0,1,2,3,4,5)
输出结果为:

2
2 3 4 5
实例
do
function foo(...)
for i = 1, select('#', ...) do -->获取参数总数
local arg = select(i, ...); -->读取参数,arg 对应的是右边变量列表的第一个参数
print("arg", arg);
end
end

foo(1, 2, 3, 4);
end
输出结果为:

arg 1
arg 2
arg 3
arg 4

相关文章
实现 fizzBuzz 函数,参数 num 与返回值的关系如下
实现 fizzBuzz 函数,参数 num 与返回值的关系如下
|
Java 数据库连接 mybatis
mybatismybatisPlus Update操作返回值不是影响行数
mybatismybatisPlus Update操作返回值不是影响行数
485 0
|
5月前
|
存储 索引
select 返回变长参数的总数
`select` 函数需传入选择器 `selector` 和可变参数,若 `selector` 为数字 n,则返回从第 n 个参数开始至末尾的参数列表;若为字符串 '#',则返回参数总数。示例中,第一个实例的 `a` 存储了第 3 个参数并打印所有参数;第二个实例遍历并打印所有参数。输出分别为:2 和 2 3 4 5,以及依次打印 1 2 3 4。
|
12月前
|
SQL Serverless 数据库
【count(列名)、count(1)和 count(星号)有什么区别】
【count(列名)、count(1)和 count(星号)有什么区别】
150 0
|
存储 算法 索引
返回索引
返回索引
60 0
|
SQL 数据库
数据库sql语句(count(*)和count(字段))
数据库sql语句(count(*)和count(字段))
173 0
|
容器
C++11中的tuple应用:让函数返回多个值
在没有tuple之前,如果函数需要返回多个值,则必须定义一个结构体,有了C++11,可以基于tuple直接做了,下面是个示例:点击(此处)折叠或打开 // 编译:g++ -std=c++11 -g -o x x.
989 0
for...of 返回索引和值
for...of 返回索引和值
|
SQL 安全 数据库
使用order by排序判断返回结果的列数,order by排序判断字段数原理详解
order by排序猜解列数原理详解 一、order by的两种使用方式 1)按照字段名排序
564 0
使用order by排序判断返回结果的列数,order by排序判断字段数原理详解