通常,从不同的对象A,B,C调用相同的方法X.是否可以从方法X内部获取调用者对象(A,B,C)的名称
例如:
class Sample
def method
# what needs to be done here?
end
end
n1 = Sample.new
n2 = Sample.new
n1.method #=> expected output is to print n1
n2.method #=> expected output is to print n2
Run Code Online (Sandbox Code Playgroud)
不,这不起作用.成像如下:
n1 = Sample.new
n2 = n1
n2.method #=> ambiguous, both n1 and n2 would be valid
Run Code Online (Sandbox Code Playgroud)
您可以为您的实例指定一个名称:
class Sample
attr_accessor :name
end
n1 = Sample.new
n1.name = :n1
n2 = Sample.new
n2.name = :n2
n1.name #=> :n1
n2.name #=> :n2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2063 次 |
最近记录: |