`
orcl_zhang
  • 浏览: 235737 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

proc和yield的区别

    博客分类:
  • ruby
阅读更多
最近开始学习ruby,总是搞不懂proc和yield的区别。
今天有仔细翻了下资料,学习了下,感觉有点明了了。
对于proc和yield总结如下:
yield,意味让路,就是这里要写代码但是要写什么还不知道,那先yield。等以后想好了再写上;proc是先写了一段代码,但是暂时不用,我先放着,等到想用了在call你。
关于这方面的例子网上可以找到很多。附一个别人的供大家参考。
sayHello = Proc.new{puts "hello"} # 代码不会立即执行
sayHello.call# 现在我们来调用运行Proc的存放的代码
def time
   start = Time.now
   yield
   puts Time.now - start
 end
time { puts "block!!"  }

理解比较浅显,有不足之处还望指出。
0
0
分享到:
评论

相关推荐

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

    在规则引擎中,Ruby 的闭包使用特别频繁,而且有 block,Proc和 lambda 等后几种形式的用法,很让人困惑。为了深入理解代码,再次认真学习了一下 Ruby 的闭包,特别是 block,proc 和 lambda 几种用法的异同,这次的...

    guard-yield:更改文件时运行任何 Ruby 代码 addedremoved

    安装在您的 Gemfile 中: group :development do gem 'guard-yield'end 安装: $ bundle install或者自己安装: $ gem install guard-yield用法将片段添加到您的Guardfile中: $ bundle exec guard init yield然后,...

    multi_block:将多个块传递给 Ruby 方法

    多块 MultiBlock 是一个迷你框架,用于将多个块传递给方法。 它使用以简单的语法完成此操作。 接收方法可以产生所有块...yield :success # calls :success proc without args yield :success , "Code Brawl!" # calls

    kernel-schedule:内核模块做进程调度

    内核调度第 1 部分:实施和设计决策下面给出了我们为实现速率单调调度的内核模块而遵循的步骤: Step1 : 我们在Proc文件系统中创建了一个目录条目“/proc/mp2”,并在该目录中创建了一个文件条目“/proc/mp2/status...

    ruby语法基础教程

    §5.2.3 yield 41 §5.2.4 编写自己的迭代器 42 第六章 表达式 42 §6.1 运算符 43 §6.2 命令替换 44 §6.3 赋值运算符 44 §6.4 并行赋值 46 §6.5 嵌套赋值 47 §6.6 其他赋值 47 §6.7 条件运算 47 §6.8 case...

    swim:一个简单、简洁的网络爬虫

    游泳 一个简单、简洁的网络爬虫。 ... 显着的特点是: 多线程,启用速率限制的可能性 杀死爬虫并稍后恢复它而不会丢失数据 所有爬取相关的信息都保存在一个数据库中 swim是简约的设计。 那里有很多强大的爬虫;... 'proc

    munz:Python Slack Bot,简易插件

    添加插件 在munz / plugins /目录中创建一个文件。 import asyncio from .base import MzBase class AgreeHandler(MzBase): @asyncio.coroutine def proc_msg(self, msg): ... yield from self.go_msg(ch, r

    ARM® Compiler v5.06 for µVision® armasm User Guide

    10.187 YIELD 11 VFP Instructions 11.1 Summary of VFP instructions 11.2 VABS (floating-point) 11.3 VADD (floating-point) 11.4 VCMP, VCMPE 11.5 VCVT (between single-precision and double-precision) 11.6 ...

Global site tag (gtag.js) - Google Analytics