【发布时间】:2012-03-21 17:33:25
【问题描述】:
所以我在 ruby 中创建了一个类:
class User
def initialize
end
end
现在说我想创建一个带有 getter/setter 的哈希属性,我对这样做的选项感到困惑。
如果我这样做:
class User
attr_accessor :some_hash
end
但我不希望这个散列永远为零,总是一个空散列。
我很困惑什么时候该做:
def some_hash
self.some_hash ||= {}
end
然后做:
def some_hash
@some_hash ||= {}
end
有什么区别?
如果我不使用 attr_accessor,我必须同时创建读取器和写入器(或 getter/setter):
def some_hash=()
end
def some_hash
end
我希望有人可以清除我创建 some_hash 属性的选项,该属性是一个哈希,如果它为空则永远不会返回 nil。
即使用 attr_accessor,手动创建方法,最后何时使用 @some_hash 和 self.some_hash
【问题讨论】:
标签: ruby