#4 楼 @p_next 我也是近期才学习 ruby,假如说的不对请指正 理解了 ruby 中私有方法的定义,以及方法查找的顺序就可以回答这两个问题 简而言之,私有方法只能以函数形式 (不写 receiver) 被调用(记得=方法是一个特例),而所谓的函数形式并不是指没有 receiver,而是隐式的被 self 调用(即 self 为 receiver,但不能把它写出来) 回到代码上
class Test
readonly :x # 函数形式调用(满足调用private method的条件),self为class Test本身
def x=(value)
@x = value
end
end
然后来方法查找,在不考虑特异类的情况下 Test---class--->Class---superclass---->Module 于是定义于 class Module 中 private method 就这样被调用了
#3 楼 @edgar_wang_cn 多谢回复,你说的很对,具体的实现方法应该就是#1 楼 @5long 所说的那样把
看了一下,果真是这样…多谢了,自己还是记不牢啊…