作者yzugsr (Bird)
看板Programming
标题Re: [问题] Lua在函数中产生资料与读取问题
时间Sat Feb 9 12:44:39 2008
为什麽里面syntax错那麽多....
※ 引述《oohay (五黑)》之铭言:
: function a()
: a = ()
local a = {}
lua的table明明是 {} 不是 ()
在lua, function也是first-class object
你不加local a这个table会把原本的function盖掉
: 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)
{ } <= 这样也不对
你在function里面把a的参考指向另一个{1, 2}的table
但原本的table还是没有变..
应该要
table.insert(a, 1)
table.insert(a, 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变数,
: 可是一旦要取用, 我只想要它的值, 而不是它这个物件的参考!!
我完全没看到这个错误讯息
你给的code有syntax error不能跑 我改一改就没错误了
: 你这个白痴Lua一直给我参考到那个Local干嘛? 不是已经结束函式了吗?
: 不是已经跳出scope外了吗?
我写一切都很正常啊 @@
官方的programming guide有没有看完一遍
为Lua平反一下,尿不准别怪马桶歪
: 你不讲我还真不知道,原来我很想取用一个local变数,
: 直接告诉我在此区域看不见那个东西就好了,罗唆那麽多干嘛?
: 写个Lua程式,架构大一点,随机性多一点, 最後就因为这种attempt to index LOCAL
: 而 *完全* 写不下去.
: 超烂的程式语言!
有点受不了这说法....觉得烂就别用吧 =.=
他的定位本来就是fast, light-weight, embeddable scripting language
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.193.35.97
※ 编辑: yzugsr 来自: 123.193.35.97 (02/09 12:46)
1F:推 Ross0916:觉得烂+1 所以不用+1 140.112.5.10 02/09 12:53
2F:→ yzugsr:我是觉得Ruby, Python, Lua各有长处 123.193.35.97 02/09 13:11
3F:→ yzugsr:Lua好在他的轻量 (反过来说就是功能和 123.193.35.97 02/09 13:12
4F:→ yzugsr: syntax sugar少) 123.193.35.97 02/09 13:12
5F:→ yzugsr:我自己是喜欢写Ruby胜过Lua的 123.193.35.97 02/09 13:13
6F:→ yzugsr:但我想也不用一昧否定Lua 123.193.35.97 02/09 13:14
7F:推 oohay:线上改打错的,发疯时{}()不分 61.231.71.148 02/09 14:42
8F:→ oohay:不过执行确认的版本倒没错 61.231.71.148 02/09 14:43
9F:→ oohay:睡醒之前脑中想到一个解决办法,顿时觉得 61.231.71.148 02/09 14:43
10F:→ oohay:X! Lua超机车 61.231.71.148 02/09 14:44
11F:→ oohay:所谓解决办法就是同一份程式在那边复贴一份 61.231.71.148 02/09 14:45