设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 986|回复: 0
打印 上一主题 下一主题

Symbol#to_proc

[复制链接]

Fuzzy Ginkgo
Taciturn Knight

梦石
0
星屑
60710
在线时间
1933 小时
注册时间
2010-6-26
帖子
1605

烫烫烫开拓者

跳转到指定楼层
1
发表于 2012-5-21 13:26:05 手机端发表。 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 orzfly 于 2012-5-21 18:49 编辑
  1. ["Ruby", "Sugar"].map &:downcase
复制代码
在 Ruby 1.9 中,Symbol#to_proc 的出现使得这样的写法成为了现实。

& 这个符号会把会调用后面的对象的 to_proc 方法得到一个块作为当前调用的方法的块。

标题的写法其实相当于
  1. ["Ruby", "Sugar"].map {|obj| obj.downcase}
复制代码
Symbol#to_proc 的实现相当于下面的代码,这可以用在 Ruby 1.8 中。
  1. class Symbol
  2.   def to_proc
  3.     proc { |obj, *args| obj.send(self, *args)}
  4.   end
  5. end
复制代码
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-14 19:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表