调用 select

简介: `select` 函数在 Lua 中需传入 selector(如数字或 "#")和变长参数,若 selector 是数字 n,则返回从第 n 个参数到最后的所有参数;若为字符串 "#",则返回参数总数。示例展示了如何使用 `select` 获取并打印参数列表的不同部分。在第一个例子中,`a` 获取了第 3 个参数(值为 2),并打印了从第 3 个开始的所有参数。第二个例子中,`foo` 函数通过 `select('#', ...)` 得到参数数量,然后遍历并打印所有参数。

调用 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

相关文章
|
15天前
|
索引
调用 select
`select` 函数在 Lua 中用于处理变长参数,需传入选择器`selector`和变长参数。若`selector`为数字n,则返回从索引n开始至结尾的参数列表;若为字符串'#',则返回参数总数。示例展示了如何使用`select`获取和打印参数。在第一个例子中,`f`函数从第三个参数开始取值,输出2及后续参数。第二个例子中,`foo`函数遍历并打印所有参数,输出每个参数的值。
|
3天前
|
索引
调用 select
`select` 函数在 Lua 中需传入一个选择器 `selector` 和变长参数,若 `selector` 为数字 n,则返回从索引 n 开始至末尾的参数列表;若为字符串 '#',则返回参数总数。示例展示了如何使用 `select`:第一个例子中,`a` 从第三个参数开始取值并打印所有剩余参数;第二个例子遍历并打印所有参数,通过 `select('#', ...)` 获取参数数量。
|
2天前
|
SQL Oracle 关系型数据库
SQL COUNT() 函数
SQL COUNT() 函数
8 3
select:如何同时感知多个I/O事件
【4月更文挑战第12天】select 函数提供了最基本的 I/O 多路复用方法,在使用 select 时,我们需要建立两个重要的认识:描述符基数是当前最大描述符 +1;每次 select 调用完成之后,记得要重置待测试集合。
|
10月前
|
SQL 数据库
拷贝的表的SQL语句 SELECT INTO 和 INSERT INTO SELECT的用法与区别
语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1
111 0
|
SQL 关系型数据库 数据库
如何实现update select 语句
​ 这次的文章出现也是因为这样一个类似的需求,个人需要把一个30万行(后续会发文介绍常见的处理手段)的数据文件入库,同时需要将部分字段迁移到另一张表,两个表之间通过两个字段进行and匹配。
164 0
|
SQL 数据库 数据库管理
sql数据定义语句(cascade,set,null,no action的区别)
sql数据定义语句(cascade,set,null,no action的区别)
240 0
|
SQL Java 数据库连接
SELECT操作
SELECT操作
58 0
|
索引
select count(*)和select count(1)的区别
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的     假如表沒有主键(Primary key), 那么count(1)比count(*)快,     如果有主键的話,那主键作为count的条件时候count(主键)最快     如果你的表...
963 0
|
程序员 数据库 索引