ruby - Ruby 中的 object.method 或 method(object)?
问题描述
我是 Ruby 的新手,目前正在学习积木。据我所知,有两种方法可以调用要在块内使用的参数。第一种方法是例如:
def function (parameter)
yield(x)
end
所以我们可以通过使用来调用该方法
function{|x| print x}
我的问题是关于按照模式定义方法object.method
。例如
parameter.function{|x| #something }
你如何定义块来接收(1..100)
对象,例如,each
方法?:
(1..100).each{|x| print x}
解决方案
您需要为对象定义函数。(0..10)
是Range
。
irb(main):002:0> (0..10).class
=> Range
class Range
def function
self.each {|i| yield i}
end
end
(0..10).function {|i| print i}
#=> 012345678910
推荐阅读
- javascript - 如何让我的组件计算 React 中复选框值的总和?
- django - 在我将 formset 属性添加到 modelformset_factory() 之前,我的模型表单集工作正常
- r - 在 R 中为 tiff() 输出调整和选择适当大小的提示和技巧;保存时图像与文本经常不成比例
- python - 如何在 QMainWindow 中隐藏空的中央小部件
- caching - 在内存层次结构的上下文中,为什么有“写未命中策略”,而没有“读未命中策略”?
- windows - 从批处理文件启动的文件夹不是活动窗口
- bash - GitBash:无法更改目录
- python - 在python3中取消扭曲图像
- php - Vue / Laravel - 导入 CDN vuetify 而不是 npm install
- sql-server - 编写发布脚本后,SQL Server 在某些表上合并复制和垂直分区