C#Lua 不定参函数
时间: 2023-11-23 08:53:30 浏览: 95
Lua编程事例:调用Lua有参函数
4星 · 用户满意度95%
C#Lua中的不定参函数指的是可以接受任意数量参数的函数。在Lua中,我们可以使用可变参数(...)来实现不定参函数。但是在C#Lua中,由于...是匿名的,且lua5.1以后不再为vararg自动创建一个表,所以我们需要手动建表。下面是一个示例代码:
local functor = function(cb)
cb()
end
local OnComplete = function(cb, ...)
local arg = {...}
functor(function()
cb(unpack(arg))
end)
end
在这个示例中,OnComplete函数接受一个回调函数cb和任意数量的参数。我们使用{...}来获取所有参数,并使用unpack函数将它们展开,然后将展开后的参数传递给回调函数cb。
另外,在Lua中,由于只有一种数值类型(number),所以参数为int和float类型的函数都满足要求。但是在C#Lua中,我们需要使用重载函数来实现这个功能。当先定义参数float类型后定义int类型的函数时,Lua代码调用就是参数类型为float的函数了。
阅读全文