かつてAppleScript関連で大きな議論を呼んだ話題に「暗黙のrunハンドラ」というものがありました。
何も書かないAppleScriptのプログラムに暗黙のrunハンドラが存在している(ように動く)という話です。
現在でも同様に、
「明確に仕様として明記されていないものの、おそらくこういう動作になっているだろう」
と推測して書いているものがあります。それが、暗黙のuseコマンドです。
useコマンドはデフォルトで指定されている
何もuseコマンドを書かなくても、仮にuseコマンドを記述しても、パラメータを指定しない場合にはデフォルト値が
use AppleScript
無指定時には、現在実行中のバージョンのAppleScriptで動作するようになっているようです。
use scripting additions
macOS 10.15以降はサードパーティのScripting Additionのサポートが廃止されたため、Apple純正のStandard Additionsのオン/オフ設定コマンドという位置付けになっているようです。
use framework
この記述では、とくに無指定時のデフォルト値というものはないようです。
ただし、Vanilla ScriptとCocoa Scriptで動作が異なっています。また、Script Object内に記述したAppleScriptでも動作が変わります。
AppleScript名:scripting additions 1.scpt |
display dialog "TEST" |
AppleScript名:scripting additions in script object.scpt |
testScript’s testMes("TEST") script testScript on testMes(aMes as string) display dialog aMes end testMes end script |
AppleScript名:scripting additions 2.scpt |
use AppleScript use framework "Foundation" –display dialog "TEST"–構文チェック自体できない |
AppleScript名:scripting additions in script object.scpt |
use AppleScript use framework "Foundation" testScript’s testMes("TEST") script testScript use AppleScript use framework "Foundation" use scripting additions –ないと、構文確認をパスできない property parent : AppleScript –なくても動く。Scriptオブジェクトの階層を増やすと必須になったりする on testMes(aMes as string) display dialog aMes end testMes on testMes2(aMes as string) using terms from scripting additions —どの用語辞書の予約語かを明示的に指定するよう構文確認時に求められるケースがある display dialog aMes end using terms from end testMes2 end script |
(Visited 5 times, 5 visits today)