Lua有内置的吗sum()
功能?我似乎找不到一个,我几乎翻遍了文档中的所有地方。或许table.sum()
,或类似的东西,以遵循当前的约定。但由于我找不到它,我不得不实现它:
function sum(t)
local sum = 0
for k,v in pairs(t) do
sum = sum + v
end
return sum
end
不过,必须实现这么简单的事情似乎有点有趣。是否存在内置函数?
我不同意,拥有像这样原始和具体的东西是多余的table.sum
在标准库中。
实施起来会更有用table.reduce
沿着以下思路:
table.reduce = function (list, fn, init)
local acc = init
for k, v in ipairs(list) do
if 1 == k and not init then
acc = v
else
acc = fn(acc, v)
end
end
return acc
end
并将其与简单的 lambda 一起使用:
table.reduce(
{1, 2, 3},
function (a, b)
return a + b
end
)
的示例实现reduce
缺乏类型检查,但你应该明白。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)