`
hzlypan
  • 浏览: 7648 次
  • 性别: 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

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

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

分享到:
评论

相关推荐

    Ruby中Block和迭代器的使用讲解

    通过以上介绍,我们可以看到Block和迭代器在Ruby编程中的重要作用。掌握它们不仅能够帮助我们写出更加优雅、简洁的代码,还能够提高代码的复用性和扩展性。希望本篇文章能为你学习Ruby提供帮助。

    ios block学习总结demo

    Block是iOS和Mac OS开发中的一个重要概念,它是Objective-C(OC)语言的一种特性,也是Cocoa Touch框架的关键组成部分。在iOS应用开发中,Block经常被用来处理异步操作、简化回调函数、创建自定义迭代器等。下面我们...

    使用 optical flow block 迭代启用刚性和非刚性图像配准Matlab代码.rar

    代码注释清晰,便于理解和学习,同时提供了一个案例数据集,可以直接运行Matlab程序进行实验和验证。 这个工具包不仅适用于图像处理领域,还可以广泛应用于计算机、电子信息工程以及数学等相关专业的教学与研究中。...

    WPF学习之TextBlock

    `Name`属性为`TextBlock`提供了一个标识符,这在编程访问元素时非常有用。它还可以用作XAML中的元素名称,以便在XAML中引用该元素。 ```xml &lt;TextBlock Name="myTextBlock" Text="Hello World!" /&gt; ``` #### 12. `...

    关于block的一个demo

    例如,一个无参数且返回整型的Block可以这样定义: ```objc int (^myBlock)(void) = ^int(void) { return 42; }; ``` Block类型: Block有三种类型:全局Block、栈Block和堆Block。全局Block存储在程序的全局区域...

    一个TextBox伪装的可以复制的TextBlock

    在某些场景下,我们可能希望文本只读但允许用户复制文本内容,这时就需要一个既能保持`TextBlock`样式不变,又具有`TextBox`复制功能的控件。"一个TextBox伪装的可以复制的TextBlock"正是这样的解决方案。 `TextBox...

    如何拖动一个TextBlock的文字到另一个TextBlock

    在本案例中,我们讨论的主题是如何实现一个TextBlock中的文字被拖动并放置到另一个TextBlock。这个功能常见于文本编辑器、富文本组件或者任何需要文本移动的UI设计中。下面我们将详细介绍如何实现这一功能。 首先,...

    微信小程序解密遇到pad block corrupted

    在微信小程序开发过程中,安全是至关重要的一个环节,特别是在处理敏感数据时,如用户信息、交易数据等。这里我们遇到了一个问题:"pad block corrupted",这是一个关于加密解密过程中的错误提示,通常与填充块相关...

    Block示例代码,帮助学习block的使用

    本项目"BlockTest"提供了一个简单的示例,帮助初学者理解并学习如何在自定义UITableViewCell中使用Block。 首先,了解Block的基本语法结构。Block语法通常以`^`符号开始,后跟返回类型(如果有的话),然后是参数...

    block回调测试

    1. 创建Block:定义一个Block类型,并在适当的地方创建Block实例。 2. 设置回调:将Block设置为某个API或方法的回调,如网络请求的完成回调。 3. 参数传递:在调用Block时,传递需要的参数,这些参数可以在Block内部...

    ios-Block基础,block传值,及自定义block方法.zip

    例如,一个简单的页面跳转时,我们可能需要在目标页面接收来自前一个页面的数据,这时可以通过Block将数据作为参数传递过去,而不是通过Delegate或NSNotification。 综上所述,Block是iOS开发中的重要工具,它简化...

    block源码文件

    在Block的实现中,有一个重要的数据结构是Block描述符(Block descriptor),它包含了关于Block的一些元数据,如Block的大小、是否含有Captured Variables、是否是Block对象等。Block描述符在内存中是静态分配的,...

    block使用方法

    Block的一个重要特性是它可以捕获它所引用的外部变量,并且在Block执行时仍然可以使用这些变量。这种捕获行为可以通过值或者引用进行。如果Block通过值捕获变量,那么它会在Block中保存一个变量的副本;如果是通过...

    block-by-block算法

    在给定的文件"aa.m"中,我们可以推测这可能是一个MATLAB脚本,用于实现Block-by-block算法求解分数阶微分方程。脚本可能包含了以下步骤: 1. 定义分数阶微分方程的参数,如分数阶次\( \alpha \),以及求解域的尺寸...

    存放一些学习Block对象模型的文件,主要参考《iOS开发进阶》(唐巧著)_OC_Block.zip

    在学习Block的过程中,参考《iOS开发进阶》(唐巧著)中的Objective-C Block章节,对于深入理解其工作机制和应用场景至关重要。 《iOS开发进阶》是一本专注于iOS开发的高级技术书籍,作者唐巧以深入浅出的方式,...

    探索Ruby编程艺术:块(Block)与迭代器(Iterator)的奥秘

    Ruby是一种动态、面向对象的编程语言,以其简洁和优雅的语法而闻名。由日本开发者松本行弘(Yukihiro Matsumoto,也被称为Matz)在1993年创建。Ruby语言的设计哲学强调了简单和生产力,它融合了多种编程范式,包括...

    123.rar_PSIM SVPWM_PSIM-SVPWM_PSIM步长cblock_psim C-BLOCK_psim中c-b

    标题中的“123.rar_PSIM SVPWM_PSIM-SVPWM_PSIM步长cblock_psim C-BLOCK_psim中c-b”指的是一个关于PSIM软件中实现SVPWM(Space Vector Pulse Width Modulation)技术的项目压缩包。这个项目可能包含了用于模拟和...

    ios Block和代理的对比

    在iOS开发中,Block和代理是两种常用的回调机制,它们都可以用来实现对象间的通信,但具体用法和特性有所差异。...通过不断学习和实践,我们可以更好地掌握Block和代理的使用,并在项目中发挥它们的优势。

    wpf Textblock 文字过长时,中间用省略号代替。

    TextTrimming属性是TextBlock的一个内置特性,可以用来控制当文本内容超过TextBlock的边界时如何进行修剪。设置`TextTrimming="CharacterEllipsis"`可以使文本在末尾添加省略号。然而,它默认只会删除末尾的部分...

Global site tag (gtag.js) - Google Analytics