on | to 識別子 : 変数1 [識別子 : 変数1...] [global 変数2 [, 変数2...]] [local 変数3 [, 変数3...]] [文] end [識別子 : [識別子 :...]
識別子 | 引数のラベル |
変数1 | 命令の引数を受け取る変数(仮引数) |
変数2 | 大域変数 |
変数3 | 局所変数 |
文 | AppleScriptの任意の文 |
Objective-C風に、「:」区切りの引数渡しのハンドラを作る。
ハンドラの設定方法には、他に引数を位置で渡すタイプと引数をラベルで渡すタイプがある。
詳しくは、利用者定義命令の説明やhandler値を参照してほしい。
この形式のハンドラは、Objective-Cとの橋渡し(bridge)のために使われるもので、他の用途で使う意味はほぼない。
Objective-Cフレームワークを使うにはuse framework文を使うが、Objective-C(やSwift)で使われるAPIについては、本用語辞書の範囲外なので、詳細はApple他が公開している書類を参照してほしい。
この定義方法の実態はアンダースコア区切りの識別子を持つ引数を位置で渡すタイプのハンドラである。
そのため、ラベルのように見えるからといって、呼び出しの際に引数の位置を入れ替えることはできない。
次の二つの定義は同じ意味。
on ValueA:v1 ValueB:v2
on ValueA_ValueB_(v1, v2)
また、呼び出しの際に気をつけることとして、ハンドラの親オブジェクトを明示的に指定する必要があることも注意してほしい。
用例1だとitsはなくても良さそうだが、実際は必須である。
its ValueA:10 ValueB:"20"
on ValueA:v1 ValueB:v2
return v1 & v2
end ValueA:ValueB: