`

Ruby 学习笔记 --块blocks

    博客分类:
  • Ruby
 
阅读更多
{} 单行的用;do...end 用
block可以带参数,也可以不带参数,参数使用||,

举例说明:
[Crabby@Crabby-Lee Book]$ irb
1.9.3-p125 :001 > sum = 0
=> 0
1.9.3-p125 :002 > (1..5).each do |v|
1.9.3-p125 :003 >     name = 'smile'
1.9.3-p125 :004?>   sum +=v
1.9.3-p125 :005?>   end
=> 1..5
上例中name是块内的变量,离开块便不可以访问;块内可以访问块外的变量

1.9.3-p125 :016 > name = 'oooo'   
1.9.3-p125 :017 > sum = 0
1.9.3-p125 :018 > (1..5).each do |v| 
1.9.3-p125 :019 >     name = 'inside' //如果没有显示定义块内的局部变量;name,则name将修改全局变量
1.9.3-p125 :020?>   sum +=v
1.9.3-p125 :021?>   end
1.9.3-p125 :022 > p sum
1.9.3-p125 :023 > p name //name 输出为inside,


Blocks
you assign a name to a block,the code in the block is always enclosed within braces({}),always invoked from a function with the same name as that of the block.This means that if you have a block with the nametest,then you use the function nametest to invoke this block.


block_name
{
  statement1,
  statement2
}



1.9.3-p125 :001 > def test
1.9.3-p125 :002?>   puts "you  r in the method"
1.9.3-p125 :003?>   yield
1.9.3-p125 :004?>   puts "you are again back to the method"
1.9.3-p125 :005?>   yield
1.9.3-p125 :006?>   end
=> nil
1.9.3-p125 :007 > test {p "Fuck"}
you  r in the method
"Fuck"
you are again back to the method
"Fuck"
=> "Fuck"



有参数的调用:
def test
   yield 5
   puts "You are in the method test"
   yield 100
end
test {|i| puts "You are in the block #{i}"}


暂时未学习,待补充.
块与方法


分享到:
评论

相关推荐

    scratch-blocks-develop.zip

    `scratch-blocks-develop.zip`是一个压缩包,包含了已经编译过的`scratch-blocks`源代码。源码通常指的是编程语言的原始文本文件,包含可读的指令,供开发者理解和修改。这个压缩包中的源码已经过编译,意味着它已经...

    ruby笔记1ruby笔记1ruby笔记1

    标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...

    ruby-1.8.6-p114.tar.gz

    它支持块(blocks)、闭包(closures)、动态类型和垃圾回收机制。此外,Ruby强调程序员的生产力和代码的可读性,提倡“代码就是文档”的理念。 6. **Rails框架**:Ruby 1.8.6时期的Ruby on Rails是一个非常流行的...

    Python库 | format-blocks-0.1.2.tar.gz

    总结一下,"format-blocks-0.1.2.tar.gz"是一个可能用于文本格式化或代码块处理的Python库,适用于后端开发场景。使用这个库可以优化字符串和代码块的格式,提高代码的可读性和文档的美观性。如果你的工作涉及到大量...

    ruby-language-quickref.zip_About Language

    3. **块、 Proc 和 Lambda**:Ruby支持代码块(blocks),它们是通过`do..end`或花括号`{}`定义的一段代码,可以作为参数传递给方法。Proc和Lambda是代码块的两种可存储形式,它们可以捕获上下文并作为对象进行操作...

    grapesjs-blocks-basic:GrapesJS编辑器的基本块

    GrapesJS基本块该插件包含GrapesJS编辑器的一些基本块概括插件名称: gjs-blocks-basic 块: column1 , column2 , column3 , column3-7 , text , link , image , video , map选项选项描述默认blocks 要添加...

    MPLAB-Device-Blocks-for-Simulink-master_matlab_源码

    2. **Simulink块库**:MPLAB-Device-Blocks-for-Simulink-master提供了丰富的Simulink定制块,用户可以拖放这些块来构建与Microchip微控制器相关的系统模型。这些块已经预设了微控制器的硬件特性,减少了用户手动...

    FHOG多通道融合特征提取学习笔记---qw2017.5.91

    这个学习笔记主要涵盖了FHOG特征提取的关键步骤,具体包括以下几个方面: 1. **梯度计算**: 梯度计算是FHOG的第一步,用于获取图像的局部变化信息。通过使用一维离散微分模板(如Sobel或Prewitt滤波器),可以...

    AI-Blocks-master_opengl_python_ThingThing_AI-Blocks_

    标题 "AI-Blocks-master_opengl_python_ThingThing_AI-Blocks_" 暗示这是一个与人工智能相关的项目,可能是一个使用Python编程语言实现的图形用户界面(GUI)应用,它利用了OpenGL进行图形渲染,并且可能与一个名为...

    swagger-blocks, 定义和服务 ruby 应用程序的动态更新 Swagger.zip

    swagger-blocks, 定义和服务 ruby 应用程序的动态更新 Swagger Swagger::Blocks Swagger::Blocks 是一个用于纯 ruby 代码块的DSL,可以转换为 JSON 。它帮助你以 Swagger 风格编写API文档,然后自动构建与 Swagger ...

    gulp-remove-debug-blocks-源码.rar

    其主要依赖于正则表达式来匹配和替换代码中的调试块。首先,我们需要了解的是`gulp`的工作机制。`gulp`是一个自动化构建工具,它允许开发者定义一系列任务来处理项目文件,例如编译、压缩、合并等。`gulp-remove-...

    PyPI 官网下载 | eks-spot-blocks-0.2.97.tar.gz

    《PyPI与eks-spot-blocks-0.2.97:Python在云原生环境中的分布式解决方案》 PyPI(Python Package Index)是Python开发者的重要资源库,它为全球的Python程序员提供了海量的第三方模块和库,使得开发变得更加便捷...

    scratch-blocks, Scratch块是构建创造性计算接口的库.zip

    scratch-blocks, Scratch块是构建创造性计算接口的库 块Scratch块块是构建创造性计算界面的库。 简介Scratch块是 google 项目的一个 fork,它提供了一个设计规范和代码库,用于构建创新计算接口。 代码库支持快速...

    【1.5.2】快速建造方块 Instant-Blocks-Mod-1.5.2.zip

    《我的世界》1.5.2版本中的"Instant Blocks Mod"是一个非常实用的游戏模组,它的主要目标是提升玩家在游戏中的建造效率,让你能够瞬间放置方块,极大地简化了建筑过程,使得复杂的建筑设计变得更加简单快捷。...

    scratch-blocks源码编译1

    ### Scratch-Blocks源码编译指南 #### 一、前言 本文将详细介绍如何从源码编译Scratch-Blocks的过程。Scratch-Blocks是一款基于Google的Blockly项目的可视化编程库,用于构建像Scratch这样的图形化编程环境。通过...

    Ruby-Project-2

    可数方法这是Advanced Building Blocks项目,重点在于使用可枚举的方法。克隆和安装将此存储库克隆到本地计算机。 为此,请单击文件列表右上方的绿色“代码”按钮,然后在提示中复制链接。 然后,在终端中运行以下...

    Python库 | eks-spot-blocks-0.2.105.tar.gz

    《Python库eks-spot-blocks-0.2.105详解》 eks-spot-blocks-0.2.105.tar.gz是一个针对Python开发的库,主要服务于后端开发领域。这个库的名称暗示了它可能与Amazon Elastic Kubernetes Service (EKS) 和Spot ...

    PyPI 官网下载 | cmsplugin-blocks-0.1.1.tar.gz

    标题中的"PyPI 官网下载 | cmsplugin-blocks-0.1.1.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的开源软件包。PyPI是Python社区广泛使用的资源库,开发者可以在这里发布自己的Python模块、库或者工具...

    webpack-blocks-ts:使用ts-loader的TypeScript的替代Webpack块

    webpack-blocks-ts与Webpack 4.0和webpack-blocks 1.0兼容。 如果您需要使用旧版本的webpack-blocks,请使用此软件包的1.0.0早期版本。 项目状态 该项目目前正在寻找维护者。 公关被接受,并且在没有过多审查的情况...

    学习 Ruby 的笔记以及 Demo.zip

    本资源“学习 Ruby 的笔记以及 Demo.zip”显然包含了关于Ruby编程的学习资料和一些实际示例代码,旨在帮助初学者理解并掌握Ruby的基础及进阶特性。 首先,让我们深入了解一下Ruby的核心特性: 1. 面向对象:Ruby是...

Global site tag (gtag.js) - Google Analytics