メソッドオブジェクトに関する雑記
元ネタのTweetを撮り逃してしまってちょっとネタ元が不安定なんですが、
Rubyって知ってる人が結構いると思うんだけど、
#fooメソッド宣言 def foo() puts 'foo' end
ってメソッドがあったときに
#メソッド呼び出し Javaみたいに()は必須じゃない foo
ってだけでメソッドが実行されるんだけど(勿論括弧をつけてもOK)、
# :fooは(コロンを付けたものはシンボル) m = method(:foo)
で引き出したメソッドオブジェクトであるmはメソッドをcallするにあたって
m.call
ってする必要があるんだよな、面白いもんで(因みに引数がある場合はcallの後ろにひっつければいい)
でもコレってはじめのメソッド呼び出しと一緒じゃなよなぁってツイートされてて当たり前だけどちょっと驚いた