是否可以在Ruby中没有实例对象的情况下调用特定方法(或获取实例变量)?
class Foo
def initialize(arg)
@bar = arg
end
end
f = Foo.new('test')
p f #=> "test" (in this case, get @bar variable without instance method)
例如,如果定义了Example类,
ex = Example.new
ex #=> #<Example:0x00000000000000>
我想这样做。
ex = Example.new('hello')
ex #=> "hello"
答案 0 :(得分:1)
您可以inspect
使用p
,to_s
使用puts
class Foo
def initialize(arg)
@bar = arg
end
def inspect
@bar
end
def to_s
@bar
end
end
f = Foo.new('test')
puts f #=> "test"
p f #=> "test"
答案 1 :(得分:0)
忽略initialize
方法的返回值; initialize
总是返回self
,在这种情况下是Foo的一个实例。定义to_s
方法只定义了Foo实例的字符串表示。
f = Foo.new('test')
p f #=> "test"
p f.class #=> Foo
所以在ex = Example.new('hello')
之后,ex将始终是一个Example实例。它不能是字符串或其他什么。