我正在阅读Dalli 的源代码,我发现了这个......
module ActionDispatch
module Session
class DalliStore < AbstractStore
def initialize(app, options = {})
# Support old :expires option
options[:expire_after] ||= options[:expires]
super
@default_options = { :namespace => 'rack:session' }.merge(@default_options)
@pool = options[:cache] || begin
Dalli::Client.new(
@default_options[:memcache_server], @default_options)
end
@namespace = @default_options[:namespace]
@raise_errors = !!@default_options[:raise_errors]
super
end
.... rest of class definition
令我印象深刻的是 super 在初始化期间被调用了两次。我以前从未见过这种红宝石成语。你为什么要这样做?