Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 无限值变量_Lua - Fatal编程技术网

Lua 无限值变量

Lua 无限值变量,lua,Lua,我试图得到一个具有无穷大值的变量,如果将它与0比较,我希望它为0,与任何其他数字/字符串相同 if ( epicvar == "random string" ) then 这是不可能的。我不知道有哪种语言能提供这种行为 单个变量只能存储有限数量的信息。您可以在一个变量中存储多个值,但想要“无限值”,我建议您应该阅读一些内容,熟悉基本的编程概念 有一个常量math.maging,用于表示+无穷大的值。但是,它是一个离散值 为了好玩,模拟这种行为的一种黑客方法可能是创建一个Lua类的实例,其中包

我试图得到一个具有无穷大值的变量,如果将它与0比较,我希望它为0,与任何其他数字/字符串相同

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}