Rubyと遅延初期化
attr_reader を使ったgetterの方が速いのならそれを使いたくなるのが人情ってものではないでしょうか?
class LaterInitializationSelfOverrideToAttrReaderHello attr_reader :message alias :message_by_attr_reader :message def message unless @message then @message = Time::now.strftime("Hello @ %Y-%m-%d") end class << self alias :message :message_by_attr_reader end @message; end end
もっと簡単な書き方がありそうな気がするけど思い付きません.
とりあえずこれで initialize で初期化して attr_reader で定義したgetterでアクセスするのと速度的に並ぶはずです.あとはこれを一発定義できるメソッドがあれば文句なしです.