在为IOS编写机器人脚本时,我想使用特定坐标来检查当前屏幕状态的位置。我将通过使用命令调用坐标的rgb颜色来完成此操作。这是一个例子,假设print
将返回rgb。
local x=100
local y=200
function getxy()
print(x .. "," .. y)
end
function example()
x=200
y=300
getxy()
end
function example2()
x=300
y=400
getxy()
end
getxy()
example()
getxy()
example2()
如果你运行它会返回 100,200 200,300 200,300 300400
是否可以在example()
内调用x和y而不覆盖函数外的本地x和局部y?
编辑:我的解决方案
local x=100
local y=200
function getxy()
print(x .. "," .. y)
end
function home()
x=100
y=200
end
function example()
x=200
y=300
getxy()
home()
end
function example2()
x=300
y=400
getxy()
home()
end
getxy()
example()
getxy()
example2()
现在运行此将返回100,200 200,300 100,200 300,400
所以我添加了另一个名为home()
的函数。这对我想要完成的事情有效吗,还是应该将home()
调用置于getxy()
函数内?
答案 0 :(得分:0)
使用以下示例
local x,y = 100,200;
function output(x,y)
print('x =',x,', y =',y);
end
function home(o)
local x,y = x+50,y+50; -- this uses the declared x,y but assigns them to a local variables named x,y... so original x,y won't be rewritten..
o = (o and output(x,y)); -- lazy call to output instead doing if then end..
end
function example1(o)
local x,y = 15,20;
o = (o and output(x,y));
end
function example2(o)
local x,y = x*x/(x+x),y*y/(y+y);
o = (o and output(x,y))
end
print('original variables value =',x,y); -- original variables value = 100 200
home(true); -- x = 150, y = 250
example1(true); -- x = 15, y = 20
example2(true); -- x = 50, y = 100
print('variables value =',x,y); -- variables value = 100 200