##準備
Macには標準で AppleScriptエディタ が付属しているので、それを使います。
##所感
実際に触れてみて、とても自然言語に近いスクリプトだなーという印象を持ちました。
知らずに見たら普通に英文にしか見えません。
例えば、ファイルアクセス。
-- ファイルへの書き込み
set filePath to "Macintosh HD:Users:username:anyFile.txt"
set fp to open for access file filePath with write permisson
try
write "This is a sample text." to fp
on error msg number n
close access fp
error msg number n
end try
close access fp
インデントあたりがプログラム感を出してますが、それ以外は普通に英文です。
##スクリプトを書く
###変数
変数は特に宣言をせず、いきなり代入できます。
-- 文字列 "hoge" を変数 VAL_NAME に代入
set VAL_NAME to "hoge"
###ハンドラ(サブルーチン)
AppleScriptではサブルーチンのことをハンドラと呼ぶようです。
なのでon
で定義します。
on sayHello()
-- 画面にダイアログを表示
display dialog "Hello!"
end
###コメント
1行コメントは--
、ブロックコメントは(* *)
を使います。
-- ここは1行コメント
set one to 1
(*
ここは
ブロック
コメント
*)
set two to 2
###スクリプトオブジェクト
AppleScriptはプロトタイプベースのオブジェクト指向言語のようです。なのでオブジェクトを定義できます。
script Animal
property age : 0
property name : "anyName"
-- 通常のメソッド
on say()
display dialog "My name is " & name
end say
-- 引数付きメソッド
on cry(word)
display dialog "Cry " & word
end cry
-- ラベル式引数
to hello to val
display dialog "Hello " & val
end hello
end script
-- 実行
tell Animal to say -- => "My name is anyName"
tell Animal to cry("wow") -- => "Cry wow"
tell Animal to hello to "World" -- => "Hello World"
##アプリにメッセージを送る
スクリプトオブジェクトの実行を見てもらうとtell
を使っているように、オブジェクトに対してメッセージを送る、というのが使うイメージです。
なので、なにがしかのアプリに対して処理をする場合も、アプリ名を名指ししてメッセージを送る、というイメージで実装します。
tell application "iTunes" to play the playlist named "トップ 25"