我正试图弄清楚如何在接收器上传递我的“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)
但同样,我想在没有第一个例子的论证的情况下传递接收器。这可能吗?
答案 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-"]