1 #当前块
 2 class Block
 3     def a_method
 4         return yield if block_given?
 5         'no block'
 6     end
 7 end
 8 obj=Block.new
 9 puts "#{obj.a_method}"
10 puts "#{obj.a_method {"here's a block!"}}"

 1 #闭包
 2 class Greeter
 3     def initialize(name)
 4         @name=name
 5     end
 6     def name
 7         @name
 8     end
 9     def name=(new_name)
10         @name=new_name
11     end
12 end
13 g=Greeter.new("Barney")
14 puts g.name     
15 g.name="Betty"
16 puts g.name       

 1 #切换作用域
 2 v1=1
 3 class MyClass
 4     v2=2
 5     local_variables
 6     #puts "#{local_variables}"       #[:v2]  
 7     def my_method
 8         v3=3
 9         local_variables
10         #puts "#{local_variables}"    #[:v3]
11     end
12     local_variables
13     #puts "#{local_variables}"        #[:v2]
14
15 end
16 obj=MyClass.new
17 obj.my_method                        #[:v3]
18 puts "#{local_variables}"            #[:v1, :obj]

转载于:https://www.cnblogs.com/yizihan/p/3940051.html

ruby学习--block相关推荐

  1. Ruby 之 Block, Proc, Lambda 联系--区别,转载

    Ruby 之 Block, Proc, Lambda Block Block 不是对象,是Ruby的语言特性,近似于闭包(Closure). 范例: def meth    res=  yield   ...

  2. Ruby学习笔记_索引贴

    学习Ruby也有段时间了,在学习的同时也做了些笔记并发到了园子睐.看到园子里的大虾们在出了一系列文章后都会做个索引贴,这样很方便,所以本人今天抽了个空就把它整理了下,方便自己的同时也方便感兴趣的朋友. ...

  3. ruby学习笔记(11)--symbol与hash参数

    symbol是啥就不深入的讨论了,只简单说说symbol的好处 ruby内部对于每个对象,都会有一个数字id用来标识并区分,可以用xxx.object_id来查看 puts "0001&qu ...

  4. Ruby 学习笔记6

    引用自 http://ruby-china.org/topics/10414 做为热身,从一些简单的例子开始, def f1yield enddef f2(&p) p.call end def ...

  5. Day11 - Ruby的block,proc,lamdba方法比较

    前情提要: 第11天开始,要更深入Ruby的精髓! Ruby经典面试题目#11 Ruby的block,proc,lamdba方法比较?What's difference between blocks, ...

  6. Programming Ruby学习笔记一

    最近在学习Programming Ruby,做点读书笔记来记录下自己的成长也是不错的.当然更希望的是各位大牛能指出本人的不足,在这里先谢谢大家了. 第一章     入门 讲的是如何安装Ruby,在Ru ...

  7. Ruby 学习笔记(和 Python3 语法进行对比)

    我是先接触 Python3 的,如果我自己主动来选择,可能不会再去学 Ruby(可能先入为主的思想太根深蒂固了,不过最主要的还是太懒了),然鹅由于种种原因,我还是要来看一下Ruby(真是天理难容,/大 ...

  8. ruby学习笔记(2)-chomp,chop的区别

    还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...

  9. Ruby入门之零基础如何学ruby以及ruby的应用/快速学习ruby/学习ruby的流程是什么?...

    作者:李路 链接:https://www.zhihu.com/question/19552402/answer/22336708 来源:知乎 快速学习Ruby on Rails,这应该是个伪命题,没有 ...

最新文章

  1. ISME:胡锋/朱永官等揭示土壤噬菌体-宿主菌协同应对有机氯农药胁迫机制
  2. Incomedia WebSite X5 17中文版
  3. 谷歌chrome浏览器的源码分析(五)
  4. Dockerfile: no such file or directory
  5. Linux kernel 3.10内核源码分析--进程上下文切换
  6. MVC Controllers和Forms验证
  7. 数据清理最终实现了自动化
  8. ORM版学员管理系统2
  9. Nothing is impossible!——致敬Uzi
  10. mysql的int11是指什么_MYSQL中的int(11)到底代表什么意思?
  11. 初见,Devexpress
  12. 转载:矩阵L2,1范数及矩阵L2,p范数的求导
  13. h5页面禁用手机识别
  14. Firefox恢复书签
  15. C++之常用集合(总结)
  16. 【PyTorch问题】Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU,but expected them...略
  17. 从基本组件到结构创新,67页论文解读深度卷积神经网络架构
  18. 微信公众号url接口配置,使微信公众号更多功能化(python简单解决)
  19. 如何清爽的安排日常?
  20. 中国荫罩对准器市场深度研究分析报告

热门文章

  1. 2012年7月的主要目标
  2. 论搜索方法,低效的你简直在浪费生命(二)
  3. jquery on()动态绑定元素的的点击事件无反应的问题记录
  4. 深入浅出Hyper-V网络虚拟化(序)
  5. consul集群搭建,配合nginx完成服务动态发现和健康检查
  6. Go 性能优化技巧 8/10 1
  7. Shell Curses 函数库
  8. 自己动手去除暴风影音2012广告方法,这样才安全
  9. 421. 数组中两个数的最大异或值
  10. 清华大学操作系统公开课笔记(向勇、陈渝)