Lua - 对可能具有 nil 值的表进行求和
2022-1-31 20:54:31
收藏:0
阅读:341
评论:3
我想在 Lua 中对表进行求和,但是如果我的表包含任何 nil 值,那么就会有问题。用户正在填写表格以提供我的表格值,因此他们可以让表格中的某个字段为空。
我如何处理 nil 值?当求和时,我希望将 nil = 0。
for key,value in pairs(contsum_data) do
chars ={',','%','$','₠','₡','₢','₣','₤','₥','₦','₧','₨','₩','₪','₫','€','₭','₮','₯','₱','₲','₳','₴','₵','₶','₷','₸','₹'}
val = str_replace(chars, '', value)
finalval = finalval + val
end
原文链接 https://stackoverflow.com/questions/70932691
点赞
stackoverflow用户1514861
。
pairs
只会迭代非 nil 值。
考虑下面的代码:
data = {
a = 1,
b = 2,
c = nil,
d = 4
}
for key,value in pairs(data) do
print(key, value)
end
在 for 循环中,甚至不会使用键 c
。因此,这个循环只迭代 3 次。
如果将表定义为列表,也会是同样的情况,例如
data = {1, 2, nil, 4}
所以我认为您的问题不在于拥有 nil 值,可能出错的原因是输入值不是数字。我也不知道 str_replace
的实现是什么,所以问题可能出在那里。
2022-02-01 09:33:57
stackoverflow用户1847592
尝试 finalval = finalval + (tonumber(val) or 0)
解释:
val
是一个字符串,所以在应用算术运算之前必须将其转换为数字- 如果
val
不是一个有效的字符串字面量(例如,它可能是一个空字符串),tonumber
返回nil
- 为了将
nil
转换为零,使用了“短路 OR”运算符:x = x or 0
2022-02-01 17:44:13
评论区的留言会收到邮件通知哦~
推荐文章
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
- 如何创建一个 lua 脚本以针对特定键为 fluentbit 进行限流
- 如何在Lua中将变量从Lua推送到C ++
你的请求有两个缺陷。
a) Lua表具有无限数量的nil值。
b) 添加0不会改变一个数字。
因此,你正在寻求如何对一个值进行无限次无操作的解决方案。
答案非常简单。你只需不做任何事情,让该值保持不变。将你拥有的值相加,并不考虑nil值即可。