问题:对可变参数传递的时候,采用如下方案:

local cellData

=

{
MsgText = msgText,
Param = ...,
CallBackFunc = callBackFunc,
CallBackContext = callBackContext,
Index = newIndex,
}

这里面其实Param只传递看一个参数, 大致总结一下可变参数的使用:

(1)...,标记为变长参数,lua在解析的时候会将相关参数保存在局部变量中

(2)select()函数可以遍历其中的参数

function printargs(...)
local num_args = select("#", ...)
for i = , num_args do
local arg = select(i, ...)
print(i, arg)
end
end

(3)使用

local t = { ... }将参数转换为table

(4)函数中

-- 

可以
print("1", ...)
-- 被调整为一个参数
print(..., "1"

)

如果想把可变参数放在前面,需要特殊处理,一种方式就是讲后面的参数和前面的参数一起重新打包

function append(...)
local t = { ... }
table.insert(t, x)
-- 将key为数字的转换为数组
return unpack(t)
end
 

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

  1. Lua 可变参数之arg与select

    function TestFunc(...) local arg = { ... } --Lua .2以后不再支持默认arg参数,{}与...之间要有空格 print("输入的参数个数:&q ...

  2. Lua 可变参数 ... 的一点测试

    function test( ... ) if (...) then dibug("has ...") else dibug("no ...") end for ...

  3. [lua] 你所不知道的lua nil值在可变参数函数中怎么处理!

    在lua中, 问题1:如果你在可变参数...中传入若干个参数,其中有的参数要带nil,这时怎么解决呢?(比如local function _test(...) end    _test(1, nil, ...

  4. lua --- 函数的可变参数

    主要掌握: 1>虚变量 --- 一个下划线 2>lua将函数的可变参数放在一个叫 arg 的表中,除了参数以外,arg表中还有一个域n表示参数的个数. do function fun(x, ...

  5. LUA可变长参数 ... 三个点

    本文翻译自 LUA官方文档 When a function is called, the list of arguments is adjusted to the length of the list ...

  6. C可变参数的函数

    我们实现一个简单的printf函数(可变参数) #include <stdio.h> #include <stdarg.h> void myprintf(const char ...

  7. c#编程基础之函数可变参数

    可变参数:int sum (params int[] values)int sum (string name,params int[] values) 注意:params参数必须是形参表中的最后一个参 ...

  8. C语言的可变参数在Linux(Ubuntu)与Windows下注意点

    基本上C语言的可变参数原理在不同平台和不同编译器下基本类似(通过函数入栈,从右向左,从高位到低位地址),不过部分实现会有所不同:在使用中需要注意的是: va_list 为char 类型指针,部分调用如 ...

  9. 可变参数列表与printf()函数的实现

    问题 当我们刚开始学习C语言的时候,就接触到printf()函数,可是当时"道行"不深或许不够细心留意,又或者我们理所当然地认为库函数规定这样就是这样,没有发现这个函数与普通的函数 ...

随机推荐

  1. Oracle 查询性能优化实践

      1.索引使用原则   不要对索引使用全模糊,但是 LIKE 'asdf%'是可以的,即不要Contains,可用StartWith 不要对索引进行函数,表达式操作,或者使用is null判断,否则 ...

  2. 每天一个linux命令---curl

    linux curl是一个利用URL规则在命令行下工作的文件传输工具.详细请参考:http://www.codesky.net/article/201010/170043.html 例如:curl ' ...

  3. Path形状获取字符串型变量数据

    Path形状获取字符串型变量数据: var path = new Path(); path.Data = Geometry.Parse("M 100,200 C 100,25 400,350 ...

  4. Boom.TV完成350万美元融资,目标直指VR电竞直播

    3D在线电竞直播平台Boom.tv刚刚宣布已经完成350万美元的融资,该平台旨在让观众在任何设备以任意视角观看电竞比赛,并将支持VR版本. 这家位于美国加州红木城的初创公司成立于2015年,由Gupt ...

  5. JavaScript实现存储HTML字符串

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  6. Leetcode Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  7. ACM Coin Test

    Coin Test 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 As is known to all,if you throw a coin up and let ...

  8. swiper初步探索

    最近要做一个效果,初步想到了使用swiper,不过貌似最后并不能完全通过swiper来实现,整整试了一天的时间都没有试出来,真是...压力很大,不过自己选的路,总要坚持走下去了. Swiper(Swi ...

  9. Codeforces Round #157 (Div. 2) D. Little Elephant and Elections(数位DP+枚举)

    数位DP部分,不是很难.DP[i][j]前i位j个幸运数的个数.枚举写的有点搓... #include <cstdio> #include <cstring> using na ...

  10. URAL 1427. SMS(DP+单调队列)

    题目链接 我用的比较传统的办法...单调队列优化了一下,写的有点搓,不管怎样过了...两个单调队列,存两个东西,预处理一个标记数组存... #include <iostream> #inc ...