ruby - 在方法

时间:2017-08-06 17:23:17

标签: ruby

我正试图弄清楚如何在接收器上传递我的“get_hostname”方法,而不使用参数。

例如:

class Hostname
    def initialize(hostname)
        @hostname = hostname

    def get_hostname(hostname)
        b = hostname.split(/[0-9]/)

a = new.Hostname("prod-srv-1")

现在,我希望能够打电话给:

b = a.get_hostname

但是,如果不将“a”作为参数传递,并使get_hostname成为类方法,我无法找到方法:

def self.get_hostname(hostname)
    b = Hostname.split(/[0-9]/)

然后我可以做:

b = Hostname.get_hostname(a)

但同样,我想在没有第一个例子的论证的情况下传递接收器。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用初始化方法中定义的@hostname实例变量,并使用get_hostname方法:

class Hostname
  def initialize(hostname)
    @hostname = hostname
  end
  def get_hostname
    b = @hostname.split(/[0-9]/)
  end
end

hostname = Hostname.new('prod-srv-1')
p hostname.get_hostname
# => ["prod-srv-"]