lua中表中查询字符串值

我试图创建一个函数,在其中检查表中的字符串值。

如果我声明一个变量如下所示:

local table = "blue"

我的函数:

function check(color)
    if color == "blue" then
        return true
    end
return false
end

当我使用 check(table) 时,它可以正常工作并返回 true,但是当变量是一个具有字符串值的表时:

local table = {"blue", "yellow", "red"}

当我尝试使用函数 check(table) 时,我的函数不起作用,我会得到以下错误:

无法将表转换为clr类型 System.String

为什么会发生这种情况以及如何解决它呢?

点赞
用户2858170
用户2858170

首先,如果您想检查相等性,必须使用 == 而不是 =。就像许多其他编程语言一样,= 是赋值运算符,而 == 是逻辑运算符 equal。如果您想检查表是否包含字符串“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/

2016-07-22 06:06:14