2008-06-14から1日間の記事一覧

Rubyの代入は名札貼り付け

人にRubyを教えるとき - 18 til i die (another phase) ・ 代入が実は代入ではないということ 箱ではなくて名札であると教えればよいと思う。なまじ「代入」という言葉を使うから混乱するんだろう。 名札というかポストイットか。貼って剥がせるもの。 # "ho…

Module#define_methodとsuper

define_methodの中にsuperを書くとどうなるか実験。 class A def hoge "hoge" end end class B < A define_method :hoge do "[#{super}]" end end class C < A define_method :hoge do "[#{super()}]" end end RUBY_VERSION # => "1.8.7" B.new.hoge rescue …

スーパーマリオブラザーズの「次の面」を求める 〜Rangeとsuccメソッドの甘い(?)関係〜

Range#eachはsuccメソッドを内部で呼ぶ、だからRangeにStringを指定することもできる。 しかーし、String#succが常に「正しい」次の文字列を返すとは限らない!そこで、おれおれsuccを定義してやろうじゃないかというお話。平成生まれの人は知らないかもしれ…