我可以创建
一个可以通过类
方法调用的私有实例
方法吗?
class Foo
def initialize(n)
@n = n
end
private # or protected?
def plus(n)
@n += n
end
end
class Foo
def Foo.bar(my_instance,n)
my_instance.plus(n)
end
end
a = Foo.new(5)
a.plus(3) # This should not be allowed,but
Foo.bar(a,3) # I want to allow this
道歉,如果这是一个相当基本的问题,但我没有能够谷歌我的方式解决方案.
使用私有或受保护的,真的不会在Ruby中做得太多.您可以
调用发送任何对象并使用其具有的任何
方法.
class Foo
def Foo.bar(my_instance,n)
my_instance.send(:plus,n)
end
end