我正在尝试创建一个函数,我在表中检查字符串值。
如果我声明一个变量:
^(?!.*bad).*(apple)
我的职能:
local table = "blue"
当我使用function check(color)
if color == "blue" then
return true
end
return false
end
并返回check(table)
时,它可以顺利运行,但是当变量是一个包含字符串值的表时:
true
当我尝试使用函数local table = {"blue", "yellow", "red"}
时
然后我的功能不起作用,我收到错误:
无法将表转换为clr类型System.String
知道为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:1)
首先,如果要检查是否相等,则必须使用==而不是=。 与许多其他编程语言一样,=是赋值运算符,==是逻辑运算符相等 如果你想检查一个表是否包含字符串“blue”,你必须将它的元素与“blue”进行比较,而不是表格本身!
你在这里做的就像试图找出桶里是否有苹果或香蕉。所以你检查桶是否看起来像香蕉。
试试这个:
function check(colours)
for i,v in ipairs(colours)
if v == "blue" then
return true
end
end
end
您的代码表明对Lua的基础知识缺乏了解。 我建议阅读Lua参考手册和Lua中的免费电子书编程。