`
fujinbing
  • 浏览: 232921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ruby 中的 block

    博客分类:
  • java
 
阅读更多
4.2 Blocks and Procs
    1)block是一组代码段(grouping statements),它根据上下文的语义执行.
    2)block 单行定义用{},多行定义使用do end
    3)可以使用yield在方法中调用多次相关的block
    如
        def call_block
            puts 'Start of method'
            yield    #在方法中调用block{puts 'In the block'}
            yield
            puts 'End of method'
        end
        call_block {puts 'In the block'}   
    4)code Block的返回值和方法类似,将最后一行的表达式作为返回值
    5)block不是对象,但可以通过kernel的lambda方法转换成Proc对象,
        然后可以通过Proc的call调用block
        prc = lambda {puts 'Hello'}  #将block{puts 'Hello'}转换成对象
        prc.call                                #调用Proc对象的call方法执行block
    注意:block有点回调函数的概念,它根据上下文执行具体的code
分享到:
评论

相关推荐

    深入讲解Ruby中Block代码快的用法

    主要介绍了深入讲解Ruby中Block代码快的用法,block是Ruby学习进阶当中的重要知识,需要的朋友可以参考下

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

    主要介绍了Ruby中Block和迭代器的使用,是Ruby入门学习中的基础知识,需要的朋友可以参考下

    深入理解Ruby中的代码块block特性

    在Ruby中,block并不罕见。官方对block的定义是“一段被包裹着的代码”。当然,我觉得这样的解释不会让你变的更明白。 对block的一种更简单的描述是“一个block就是一段存储在一个变量中的代码,它和其他的对象一样...

    Ruby中的block、proc、lambda区别总结

    主要介绍了Ruby中的block、proc、lambda区别总结,本文讲解了yield 和 block call 的区别、block 和 proc、lambda 的区别、proc 和 lambda 的区别,需要的朋友可以参考下

    Ruby中的block代码块学习教程

    块变量:以yield关键字调用block也可以传递参数,block中竖线(|)之间给出的参数名用于接收来自yield的参数。  竖线之间(如上例中的 | i |)的变量被称作块变量,作用和一个正常方法的参数一样 2、掌握代码块的编写 ...

    Ruby常见面试题.pdf

    9. 什么是Ruby中的块(Block)和迭代器(Iterator)?请简要介绍在Ruby中块和迭代器的概念。 10. 在Ruby中如何进行模块(Module)和类(Class)的定义?请说明在Ruby中模块和类的创建方法。 11. 什么是Ruby中的符号...

    深入理解Ruby中的block概念

    Ruby 里的 block一般翻译成代码块,block 刚开始看上去有点奇怪,因为很多语言里面没有这样的东西。事实上它还不错。 First-class function and Higher-order function First-class function 和 Higher-order ...

    Ruby中使用Block、Proc、lambda实现闭包

    Ruby中的闭包实现有:Block,Proc,Lambada。 首先,我们来看Block。 代码如下: ary = [1,2,3,4] ary.collect! do |a|  a*a end ary.each do |a|  puts a end 这段代码,我们使用了Array对象的block方法,将ary中...

    Ruby菜鸟入门指南.md

    3. Ruby中"一切皆对象"的理念,数字、布尔值、类、nil等都是对象。 4. Ruby中"一切皆表达式"的设计,控制语句、方法定义等都会返回值。 5. Ruby中"一切皆方法调用",没有直接访问属性的方式,只有方法调用。 6. 变量...

    atom-ruby-block-converter:转换Ruby块样式

    它在当前行中查找第一个起始块,然后向上。 成功后,它看起来正确,然后向下搜索匹配的}或结束。 当一个块只有一行代码时:卷曲转换器将块连接到一行上; 终端转换器将三行分开,然后自动制表。 它只会尝

    block-editor:Ruby on Rails 的块编辑器

    Ruby on Rails 的块编辑器 这个编辑器使用来自包来为 Rails 构建一个独立的块编辑器。 这个编辑器是从中提取出来的,它是按照构建的。 编辑器当前使用 v9.2.1 Gutenberg 发行包,它是 Wordpress v5.6 发行版的一...

    ruby语法基础教程

    §13.3.7 Ruby中YAML的使用 99 第十四章 安全控制 100 §14.1 0级 101 §14.1 1级 101 §14.2 2级 101 §14.3 3级 101 §14.4 4级 101 第十五章 单元测试 101 §15.1 什么是单元测试 101 §15.2 Ruby单元测试框架 ...

    Programming Ruby 1.9 & 2.0 The Pragmatic Programmers’ Guide 4th Edition

    Learn about the new parameter passing rules, local variable scoping in blocks, fibers, and the new block declaration syntax, among other exciting new features. About Ruby 2.0 Ruby 2.0 is a minor ...

Global site tag (gtag.js) - Google Analytics