{} 单行的用;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`源代码。源码通常指的是编程语言的原始文本文件,包含可读的指令,供开发者理解和修改。这个压缩包中的源码已经过编译,意味着它已经...
标题中的"ruby笔记1ruby笔记1ruby笔记1"暗示了这是一份关于Ruby编程语言的学习笔记,可能包含了作者在学习过程中的重点、难点以及心得体验。描述中的内容重复了标题,进一步强调了这是关于Ruby的深入学习记录。标签...
它支持块(blocks)、闭包(closures)、动态类型和垃圾回收机制。此外,Ruby强调程序员的生产力和代码的可读性,提倡“代码就是文档”的理念。 6. **Rails框架**:Ruby 1.8.6时期的Ruby on Rails是一个非常流行的...
总结一下,"format-blocks-0.1.2.tar.gz"是一个可能用于文本格式化或代码块处理的Python库,适用于后端开发场景。使用这个库可以优化字符串和代码块的格式,提高代码的可读性和文档的美观性。如果你的工作涉及到大量...
3. **块、 Proc 和 Lambda**:Ruby支持代码块(blocks),它们是通过`do..end`或花括号`{}`定义的一段代码,可以作为参数传递给方法。Proc和Lambda是代码块的两种可存储形式,它们可以捕获上下文并作为对象进行操作...
本资源"3D-Electronic-Blocks-master"是一个基于Unity的3D科普游戏源码,旨在通过有趣的电子积木游戏,向玩家传播电子科学知识。 游戏的核心概念是通过模拟电子元件(如电阻、电容、二极管、三极管等)的连接,让...
2. **Simulink块库**:MPLAB-Device-Blocks-for-Simulink-master提供了丰富的Simulink定制块,用户可以拖放这些块来构建与Microchip微控制器相关的系统模型。这些块已经预设了微控制器的硬件特性,减少了用户手动...
这个学习笔记主要涵盖了FHOG特征提取的关键步骤,具体包括以下几个方面: 1. **梯度计算**: 梯度计算是FHOG的第一步,用于获取图像的局部变化信息。通过使用一维离散微分模板(如Sobel或Prewitt滤波器),可以...
GrapesJS基本块该插件包含GrapesJS编辑器的一些基本块概括插件名称: gjs-blocks-basic 块: column1 , column2 , column3 , column3-7 , text , link , image , video , map选项选项描述默认blocks 要添加...
标题 "AI-Blocks-master_opengl_python_ThingThing_AI-Blocks_" 暗示这是一个与人工智能相关的项目,可能是一个使用Python编程语言实现的图形用户界面(GUI)应用,它利用了OpenGL进行图形渲染,并且可能与一个名为...
swagger-blocks, 定义和服务 ruby 应用程序的动态更新 Swagger Swagger::Blocks Swagger::Blocks 是一个用于纯 ruby 代码块的DSL,可以转换为 JSON 。它帮助你以 Swagger 风格编写API文档,然后自动构建与 Swagger ...
这个压缩包包含了一份名为“hw-ruby-intro”的作业代码,它是针对高级软件工程课程的,特别强调了Ruby语言的学习和实践。以下是对这些知识点的详细说明: 1. **Ruby语言**:Ruby是一种面向对象的、动态类型的编程...
其主要依赖于正则表达式来匹配和替换代码中的调试块。首先,我们需要了解的是`gulp`的工作机制。`gulp`是一个自动化构建工具,它允许开发者定义一系列任务来处理项目文件,例如编译、压缩、合并等。`gulp-remove-...
《PyPI与eks-spot-blocks-0.2.97:Python在云原生环境中的分布式解决方案》 PyPI(Python Package Index)是Python开发者的重要资源库,它为全球的Python程序员提供了海量的第三方模块和库,使得开发变得更加便捷...
scratch-blocks, Scratch块是构建创造性计算接口的库 块Scratch块块是构建创造性计算界面的库。 简介Scratch块是 google 项目的一个 fork,它提供了一个设计规范和代码库,用于构建创新计算接口。 代码库支持快速...
《我的世界》1.5.2版本中的"Instant Blocks Mod"是一个非常实用的游戏模组,它的主要目标是提升玩家在游戏中的建造效率,让你能够瞬间放置方块,极大地简化了建筑过程,使得复杂的建筑设计变得更加简单快捷。...
### Scratch-Blocks源码编译指南 #### 一、前言 本文将详细介绍如何从源码编译Scratch-Blocks的过程。Scratch-Blocks是一款基于Google的Blockly项目的可视化编程库,用于构建像Scratch这样的图形化编程环境。通过...
可数方法这是Advanced Building Blocks项目,重点在于使用可枚举的方法。克隆和安装将此存储库克隆到本地计算机。 为此,请单击文件列表右上方的绿色“代码”按钮,然后在提示中复制链接。 然后,在终端中运行以下...
《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"表明这是一个在Python Package Index(PyPI)上发布的开源软件包。PyPI是Python社区广泛使用的资源库,开发者可以在这里发布自己的Python模块、库或者工具...