@property或self.property使用访问器设置属性?

时间:2010-09-26 12:42:32

标签: ruby

哪种做法更好;通过@propertyself.property

操纵带有访问者的属性

1 个答案:

答案 0 :(得分:1)

如果您只是使用直接访问器,那么请坚持@property(除非您来自Python并且被@ sigil hehe关闭)否则:

这完全取决于你。但是self.property在某些需要确保最初设置属性的情况下非常有用:

def property
    @property ||= []
end

# don't need to check if @property is `nil` first
self.property << "hello"

另外请注意,使用self.property而不是@property会有轻微的开销,因为self.property是方法调用。

注意:我使用self.property仅仅property的原因是因为相应的setter方法property=需要一个明确的接收者:{{1}所以我选择使用显式接收器。