最近在看《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
不知道是什么原因,不过我相信我看完这本书再回过来应该会明白,留个记号,以后回来回顾 。
(若有路过的前辈,也可给小弟留个解释,感谢!)