2011-10-25T21:43:07+09:00

ハンドラを別のハンドラにすげ替える AppleScript

AppleScript の小ネタです。次のスクリプトでは、ハンドラ自身で、自分を別のハンドラに置き換えています。AppleScript のハンドラは property と等価みたいなのでこういうことができます。

on aaa()
set my aaa to my bbb
return "aaa"
end aaa

on bbb()
return "bbb"
end bbb

on run
aaa() -- "result : aaa"
aaa() -- "result : bbb"
end run

このテクニックは初期化処理が必要なハンドラに応用できると考えています。つまり最初の一回目だけ、property の初期化を行い、ハンドラをすげ替えて、二回目以降は初期化処理を含まないハンドラを実行するようにすると。