From: Kuniyuki Matsui Date: 2005-10-24T20:36:52+09:00 Subject: [ruby-list:41363] Re: Date へのメソッド追加要望 Ruby1.9 の論議には参加していないものですが、発言させて下さい。 クラス仕様ではなくコーディングスタイルの話ですが御容赦を。 > raigetu_25niti = Date.today.next_month.at_day(25) 私もこの提案に賛成します。理由は次の2点。 (1) next_month と at_day が副作用のないメソッドだから。 (2) (1)にもかかわらず、コンパクトに記述できる。 inc_XXX や set_XXX のような副作用のあるメソッドの存在を 否定するわけではありません。(存在は大賛成です) でも、これらを式の中で無秩序に使用したコードは、 後から追いかけるのがとてもつらくなります。 (Rubyではありませんが、それで何度か痛い目にあっているので...) もし副作用のあるメソッドを使うなら、 raigetu_25niti = Date.today.inc_month(1).set_day(25) ではなくて、冗長ではあっても、以下のように行を分けて書いてもらえると、 副作用の存在が明確になるので、メンテする人が助かります。 raigetu_25niti = Date.today raigetu_25niti.inc_month(1) raigetu_25niti.set_day(25)