检查lua中表中的字符串值

时间:2016-07-22 04:58:30

标签: string function lua lua-table

我正在尝试创建一个函数,我在表中检查字符串值。

如果我声明一个变量:

^(?!.*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

知道为什么会发生这种情况以及如何解决这个问题?

1 个答案:

答案 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中的免费电子书编程。

http://www.lua.org/manual/5.3/

https://www.lua.org/pil/