无限值变量

时间:2016-03-22 01:54:36

标签: lua

我正在尝试使用具有无限值的变量,如果将其与0进行比较,我希望它为0,并且与任何其他数字/字符串相同。

if ( epicvar == "random string" ) then 

1 个答案:

答案 0 :(得分:0)

这是不可能的。我不知道任何提供这种行为的语言。

单个变量只能存储有限数量的信息。您可以在变量中存储多个值,但希望“无限值”#34;向我建议你应该做一些阅读并熟悉基本的编程概念。

有一个常量math.huge,用于表示+ infinity的。但是,它是一个离散值。

只是为了好玩,一种模仿这种行为的hacky方法可能是创建一个包含一个总是返回true的函数的Lua类的实例。同样,这只是为了好玩。您无法定义具有无限值的变量。

local Magic = {}
Magic.__index = Magic

-- (i'd also suggest a toggable "epicvar" flag to enable/disable the property)
function Magic.new()
    return setmetatable({}, Magic)
end

function Magic.compare(self, randomVar)
    return true
end

local m = Magic.new()

-- m:compare(...) always returns true no matter what you give it
if m:compare("random string") then
    print('success')
end