Lua 无限值变量
我试图得到一个具有无穷大值的变量,如果将它与0比较,我希望它为0,与任何其他数字/字符串相同Lua 无限值变量,lua,Lua,我试图得到一个具有无穷大值的变量,如果将它与0比较,我希望它为0,与任何其他数字/字符串相同 if ( epicvar == "random string" ) then 这是不可能的。我不知道有哪种语言能提供这种行为 单个变量只能存储有限数量的信息。您可以在一个变量中存储多个值,但想要“无限值”,我建议您应该阅读一些内容,熟悉基本的编程概念 有一个常量math.maging,用于表示+无穷大的值。但是,它是一个离散值 为了好玩,模拟这种行为的一种黑客方法可能是创建一个Lua类的实例,其中包
if ( epicvar == "random string" ) then
这是不可能的。我不知道有哪种语言能提供这种行为 单个变量只能存储有限数量的信息。您可以在一个变量中存储多个值,但想要“无限值”,我建议您应该阅读一些内容,熟悉基本的编程概念 有一个常量
math.maging
,用于表示+无穷大的值。但是,它是一个离散值
为了好玩,模拟这种行为的一种黑客方法可能是创建一个Lua类的实例,其中包含一个总是返回true的函数。再说一遍,这只是为了好玩。不能定义具有无限值的变量
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
所以,你想要的东西,与任何东西相比,总是返回0?这是不可能的,至少在原生Lua中是不可能的。您试图解决的真正问题是什么?因为它看起来像一个。我建议
\uuu eq
,但只有在两种类型都具有相同的元表时才会触发。好的一面是,你总是可以用true
替换你的比较,因为你事先就知道答案了@NoName我希望无论比较结果如何,都能返回true,比如(magic==“asd”)=true@YuHao我试图找到一种绕过简单安全系统的方法(我们正在论坛上讨论这个问题,我想知道是否有可能绕过)currentIP=server.getIP()if(tostring(serverIP)=“192.168.1.1”)然后块代码结束我想用一些在比较中总是返回true的东西重新编写变量'serverIP',比如server
、currentIP
、或serverIP
)的值,则可以绕过检查。但是,除非(1)编辑原始代码,或(2)编辑原始代码引用的外部函数或变量,否则无法修改单独源文件中的变量。查找这些变量的定义位置。如果可以修改server
,则可以执行以下操作:server={getIP=function()返回true;end}
。