lua的select函数理解

目录

    • 一、用计算传递进来的参数个数
    • 二、输出第n个索引后的所有参数

关于lua的select函数,是可以用于计算参数个数的或者获取指定索引之后的参数;当select函数用于计算传递进来的参数个数时需要在第一个参数位置使用 #符号;否则就需要使用数字 n来进行获取某个指定索引后的参数;我看这部分教程时发现很多都是把 select(n,...)这个函数说是返回指定索引的参数,但是实际操作中返回的是 第n个索引后的所有参数;下面是两种用法的操作分析

一、用计算传递进来的参数个数

普通函数上使用的select

这是计算传递进来的参数个数
print (select("#",1,2,"e",3)) ----->输出结果为4注意这里计算的话,是不能计算数组和表里面的元素个数的
a = {1,2,3,4}
print (select("#",a))	------>输出结果为1,这里会将数组a看作为一个参数进行计算,因此输出1

变参函数上使用的select函数,下面是一个用于计算接收到的参数个数的变参函数

function cal_sum(...)return select("#",...) 	------->返回计算到的参数个数
endprint(cal_sum(1,2,3,4,5,5))	------->打印计算


二、输出第n个索引后的所有参数

这一部分需要着重看一下,一开始我也是对于这方面不太懂;因为很多教程都是写返回的是一个参数;但是使用print函数直接对其结果进行打印时发现打印的是指定索引后的所有值;一共可以使用两种方法进行打印zai

1、通过直接使用print函数打印其返回值

function cal_sum(...)print(select(3,...) )
endprint(cal_sum(1,2,3,4,5,5))

2、通过使用参数接收其返回值再进行打印;但是这种方法需要预先知道返回的参数个数,否则接收的变量少于返回的变量会导致后面的无法接收到;或者定义的变量多与返回的值将会导致没有接收到返回值的变量为nil

function cal_sum(...)a,b,c,d = select(3,...)print(a,b,c,d)endprint(cal_sum(1,2,3,4,5,5))


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部