【发布时间】:2012-06-17 04:22:07
【问题描述】:
以下代码打印NoMethodError。我不明白原因。虽然我调用的方法是私有的,但我是从类中调用它。类 var 不能访问它的私有变量/函数吗?我可以在 Java 中做到这一点。
class Tester
private
def func_pri
puts("From a private function")
end
protected
def func_prot
puts("From a protected function")
end
public
def func_pub
puts("From a public function")
end
public
def caller(object)
object.func_pub
object.func_pri # This statement causes error
object.func_prot
end
end
o = Tester.new
o.caller(o)
【问题讨论】:
-
当您使用对象作为参数时,您是从范围之外调用此方法。使用 send,或者在调用者方法中,做 self.fun_pri
-
这是什么语言(哦,是红宝石)?为什么将