作者oohay (五黑)
看板Programming
标题[问题] Lua在函数中产生资料与读取问题
时间Sat Feb 9 07:43:26 2008
function a()
a = ()
if a[0] == nil then
print("foo")
a[0] = ()
b(a[0])
if a[0] == nil then
print("foo")
else
print("ok")
end
c(a[0])
else
print("ok")
end
end
function b(a)
a = (1, 2)
end
function c(a)
if a == nil then
print("nil")
else
print("foo ")
print(a[0] .. a[1])
end
end
a()
以上, 从a函式丢一个变数a, 在b函式产生一对资料指派给此变数, 在c函式打算
做该变数的资料处理.
但是印出的答案尽是foo foo foo, 果如其所说的what the fuck!
印出讯息也是 "attempt to index local <variable-name>"
我知道那是某个函数的local变数,
可是一旦要取用, 我只想要它的值, 而不是它这个物件的参考!!
你这个白痴Lua一直给我参考到那个Local干嘛? 不是已经结束函式了吗?
不是已经跳出scope外了吗?
你不讲我还真不知道,原来我很想取用一个local变数,
直接告诉我在此区域看不见那个东西就好了,罗唆那麽多干嘛?
写个Lua程式,架构大一点,随机性多一点, 最後就因为这种attempt to index LOCAL
而 *完全* 写不下去.
超烂的程式语言!
找了半天找不出答案, 气到轻轻一拳把键盘一角打碎了! 看到鬼!
有没有什麽办法让一个函式(像上述函式b)内部产生的资料能在其它函式中取用?
--
→ 乡民A:灌C可以搞阿娇啊?
1F:推 乡民B:我的Visual C++光碟哪里去了?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.71.148
※ 编辑: oohay 来自: 61.231.71.148 (02/09 07:45)