首页 > 解决方案 > 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}

标签: ruby

解决方案


您需要为对象定义函数。(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

推荐阅读