GameSprit

自転車やMac・AppleScript、映画・小説やドラマのレビュー、備忘メモ・クイズなどを置いています。

AppleScript 0003 - サブルーチン(subroutines)

2005-06-18 19:57:05 | AppleScript
サブルーチン(subroutines)というのは、ユーザー定義コマンド群のハンドラ(handlers)のことです。サブルーチンは他のプログラム言語で functions、methods や procedures と呼ばれるものと似ています。
なお、ハンドラ(handlers)とは、コマンドやエラーメッセージに反応して AppleScriptが実行するステートメントのことです。
フォーマットは次のようになります。

my サブルーチン名() -- 実行部=ハンドラ


on サブルーチン名( [パラメータ1, パラメータ2, ・・・] )
  ステートメント部(命令を記述)
    ・
    ・
    ・

 [ return  値 ]

end サブルーチン名



『on サブルーチン名()』~『end サブルーチン名』がサブルーチン部です。
『on サブルーチン名( [パラメータ1, パラメータ2, ・・・] ) 』の『on』は『to』としても動作は同じです。パラメータを与えるときは『 ( ) 』内に(複数あるときは『, 』で区切って)記述します。

サブルーチン実行後の結果(値)を得るには、サブルーチン内に『 return 値 』を記述します。

AppleScript 002 のサンプルスクリプトをサブルーチンを用いて記述してみました。

--サブルーチンを実行し、結果を変数kotae3に保持する
set kotae3 to my test()

--"OK"を表示する
display dialog kotae3


--サブルーチン部
on test()
--『display dialog "ようこそ!!"』を実行し、その結果を変数kotae(内容は{button returned:"OK"})に保持する
set kotae to (display dialog "ようこそ!!")

--変数kotae(内容は{button returned:"OK"})から"OK"を取り出す
set kotae2 to the button returned of kotae

return kotae2

end test


Handlers



(補足資料)サブルーチンの考え方について
・サブルーチン化のメリットとして、次のことが挙げられます。
 (1)スクリプトの構造が分かりやすくなる
 (2)デバッグ・改変がしやすくなる
 (3)サブルーチン部の使い回しができる

・サブルーチンの機能としては今のところ下図のように理解しています。
 ほかに思いついたら追記します。


前述のAppleScript 002 サンプルスクリプトをサブルーチン化したものは この図の2. の機能ですね。
これからは3. の処理が多くなりそうに思っています。


<環境>
  Mac OS X バージョン10.4.1 標準
 (スクリプトエディタ バージョン2.1)

最新の画像もっと見る

3 Comments

コメント日が  古い順  |   新しい順
構文を参考にさせていただいています (梶原)
2011-10-11 12:27:14
梶原と申します。
今回はサブルーチンのことで
見させていただきました。
AppleScriptの構文がわからないときは
訪問し参考にさせていただいています。


当方記事にトラックバックを張っておきます。
よろしければご承認ください。
こんばんは! (vallie)
2011-10-12 20:22:06
トラックバックは確認できませんが、コメントは承認しておきます。今後ともよろしくお願いします。
イメージ図を引用させていただきます (梶原)
2011-11-22 08:58:51
梶原と申します。
イメージ図http://homepage.mac.com/kaz_t/image/as/as003flow.png
を引用させていただきます。

ちょっとサブルーチン(ハンドラ)の勉強をしたいものですので。
よろしくお願いします。

post a comment

ブログ作成者から承認されるまでコメントは反映されません。