on | to 識別子 [[of | in] 変数1] [前置詞 変数1...] [given ラベル : 変数1 [, ラベル : 変数1...]] [global 変数2 [, 変数2...]] [local 変数3 [, 変数3...]] [文] end [識別子]
識別子 | 命令の名前 |
変数1 | 命令の引数を受け取る変数(仮引数) |
前置詞 | 引数を識別する(規定) |
ラベル | 引数を識別する(任意) |
変数2 | 大域変数 |
変数3 | 局所変数 |
文 | AppleScriptの任意の文 |
利用者(user)が任意に設定した命令を、引数にラベルを付けて受け取るハンドラ(引数を位置で渡すタイプもある)
詳しくは、利用者定義命令の説明やhandler値を参照してほしい。
前置詞は、about / above / against / apart from / around / aside from / at / blow / beneath / beside / between / by / for / from / insted of / into / on / onto / out of / over / since / through(thru) / to / underのいずれか。
ラベルは、given と書いた後レコードのように記述する。
これらの変数は順番に依存せず、前置詞やラベルによって値が関連づけられる。また、二つの形式は混在させることができる。
渡す値が真偽値である場合は、呼び出す時にwith(trueの場合)とwithout(falseの場合)を使って、一度に値を渡すことができる。
ofは(特に命令を呼び出す時には)、属性や要素と同じ書き方となるために紛らわしいので、単独で使わない方がいい(というか、使えないようになっている)
また、ofやinを省略して書けるように言語ガイドの書式にはあるが、うまく認識しない。
Mac OS X10.10から、仮引数デフォルト値の指定ができるようになった(用例4)
haveSameClass given ValueA:10, ValueB:"20"
on haveSameClass given ValueA:v1, ValueB:v2
return (class of v1) = (class of v2)
end haveSameClass
display dialog (doToday at "公園" for "デート")
on doToday for toDo at thePlace
return (thePlace & "で" & toDo & "します")
end doToday
withSample with bo1 and bo3 without bo2
on withSample given bo1:a, bo2:b, bo3:c
return {a, b, c}
end withSample
sample to 5
on sample from val1 : 10 to val2
return val1 + val2
end sample