It is idiomatic to prefer to omit self.
when invoking methods; it is generally never needed.
You must use self.foo = xxx
when calling a setter method, instead of foo = xxx
, so that Ruby realizes that you are not trying create a new local variable.
- Similarly, in the unlikely event that you have an existing local variable
do_something
with the same name as a method, you must use self.do_something
to invoke the method, as just do_something
will end up reading the variable.
You cannot use self.foo(...)
to call a private method; you must instead call just foo(...)
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…