【发布时间】:2014-04-19 04:51:50
【问题描述】:
我在 Ruby 中有以下内容:
arr = [1, 2]
arr.each{|n| arr << n unless n > 2_000}
如果我匿名定义它,有什么方法可以从块中引用我的数组?
[1,2].each{|n| self << n unless n > 2_000}
还是什么?我猜不是因为我想不出可以引用它的方法。
【问题讨论】:
-
1) 不,你不能。 2) 请勿修改您正在迭代的集合。
-
@Sergio Tulentsev,1) 你总是可以编写自己的迭代器,将
self作为参数传递给给定的块 2) 添加 map 是 Matz 错误!,展平!等红宝石?附言。无意冒犯,只是讨论:) -
@trushkevich: en.wikipedia.org/wiki/Quod_licet_Iovi,_non_licet_bovi,我猜 :)
-
@Sergio Tulentsev,哈哈,你是对的 :)
标签: ruby arrays block each enumerable