通过参数访问对象的“自身”

卢卡斯·斯特芬(Lucas Steffen)

假设我想以这种方式在随机索引处访问数组的元素:

[1, 2, 3, 4].at(rand(4))

有没有办法像下面这样传递数组的大小?

[1, 2, 3, 4].at(rand(le_object.self.size))

我为什么要这样做?-一位伟人曾经说过:科学不是关于为什么,而是关于为什么没有。

斯特凡

不推荐,但instance_eval可以通过某种方式工作:

[1, 2, 3, 4].instance_eval { at(rand(size)) }

您还可以break退出tap

[1, 2, 3, 4].tap { |a| break a.at(rand(a.size)) }

有一个开放的功能请求要求添加一个产生self并返回块结果的方法。如果这使它适用于Ruby,则可以编写:

[1, 2, 3, 4].insert_method_name_here { |a| a.at(rand(a.size)) }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章