问一个全局和局部变量的小问题

49 views
Skip to first unread message

Chunlin Zhang

unread,
Jun 12, 2010, 10:51:13 PM6/12/10
to lua_cn
小问题:

local print_old = print
local print = print
print = nil -- 这里照理说是操作 local print 吧?应该不会影响全局变量里的 print 才对
print_old(print) --可是影响了,为啥?

Chunlin Zhang

unread,
Nov 16, 2011, 12:49:37 AM11/16/11
to William, lua_cn
2011/11/15 William <lili...@gmail.com>:
> 管住,,我想是因为,local print_old 实现的是指向print。所以,print=nil。print_old也=nil
>

我之前的理解是局部变量和全局变量在 lua 里是用不同的方式实现的,所以 local print_old = print
这里应该不是指向而是生成一个新的值,看来我的理解有误.

whitehack

unread,
Nov 17, 2011, 12:11:03 PM11/17/11
to lua...@googlegroups.com, William
前天邮箱被禁止发信了

local print = print
print = nil -- 这里影响的是 局部变量 print
print_old(print) -- 这里print的是 局部 print

print_old(_G.print) 这才是全局的print

>--
>您收到此邮件是因为您订阅了 Google 网上论坛的“Lua Chinese(Lua中文用户组)”论坛。
>要向此网上论坛发帖,请发送电子邮件至 lua...@googlegroups.com
>要取消订阅此网上论坛,请发送电子邮件至 lua_cn+un...@googlegroups.com
>若有更多问题,请通过 http://groups.google.com/group/lua_cn?hl=zh-CN 访问此网上论坛。
>

Chunlin Zhang

unread,
Nov 22, 2011, 2:52:13 AM11/22/11
to lua...@googlegroups.com, William
2011/11/18 whitehack <whit...@163.com>:

> 前天邮箱被禁止发信了
>
> local print = print
> print = nil   -- 这里影响的是 局部变量 print
> print_old(print)     -- 这里print的是 局部 print
>
> print_old(_G.print) 这才是全局的print
谢谢!明白了.
Reply all
Reply to author
Forward
0 new messages