ITPUB??ì3
ITPUB论坛 » 动态语言 » progmring ruby中的Variable/Method Ambiguity的例子有些奇怪

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: progmring ruby中的Variable/Method Ambiguity的例子有些奇怪
离线 上帝知道我
中级会员



精华贴数 0
个人空间 0
技术积分 1190 (1484)
社区积分 0 (1032059)
注册日期 2006-7-15
论坛徽章:0
      
      

发表于 2006-7-29 20:25 
progmring ruby中的Variable/Method Ambiguity的例子有些奇怪

def a
print "Function 'a' called\n"
99
end

for i in 1..2
if i == 2
print "a=", a, "\n"
else
a = 1
print "a=", a, "\n"
end
end


i=1 执行else a=1 print "a=", a, "\n"
i=2 这时a已经赋值,按道理a应为变量,可是实际确是Function call
书中的解释不对


只看该作者    顶部
离线 44sizi
中级会员



精华贴数 0
个人空间 0
技术积分 1146 (1559)
社区积分 0 (1032063)
注册日期 2006-7-15
论坛徽章:0
      
      

发表于 2006-7-29 20:29 
你的想法是按runtime的次序,Ruby解释器看的程序从上往下的顺序解释的


def a
print "Function 'a' called\n"
99
end

for i in 1..2
if i == 2
# 在这个地方,Ruby解释器看到的就是外面的a的定义,所以a是绑定到外面的方法
print "a=", a, "\n"
else
a = 1
print "a=", a, "\n"
end
end


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问