`
hzlypan
  • 浏览: 7514 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在学习block和迭代器时的一个小疑问

阅读更多

最近在看《Programming Ruby 中文版》(第二版)

第50页,block和迭代器,关于显示Fibonacci数列的例子:

def fib_up_to(max)
  i1, i2 = 1, 1
  while i1 <= max
    yield i1
    i1, i2 = i2, i1+i2
  end
end

fib_up_to(1000) {|f| print f, " "}
print "\n"  #此句为结果查看方便自己加的

 执行结果和书上显示的一样(我用的编辑器是用ruby one-click install自带的SciTE):

>ruby HQ_PR2_014.rb
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 
>Exit code: 0

 但是我把代码中的"1000"改为"01000",即:

def fib_up_to(max)
  i1, i2 = 1, 1
  while i1 <= max
    yield i1
    i1, i2 = i2, i1+i2
  end
end

fib_up_to(01000) {|f| print f, " "}
print "\n"  #此句为结果查看方便自己加的

 执行结果便变了,少了后面两个数字:

>ruby HQ_PR2_014.rb
1 1 2 3 5 8 13 21 34 55 89 144 233 377 
>Exit code: 0

 不知道是什么原因,不过我相信我看完这本书再回过来应该会明白,留个记号,以后回来回顾

(若有路过的前辈,也可给小弟留个解释,感谢!)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics