ハンドラの命名方法

まずは基本的な規則

 基本的な部分は「変数の命名方法」と同じです。
 aaaBbb式にして小文字から始めるか、AaaBbb式にして大文字から始めるかは、わりあい趣味が別れるところですが、このTipsではaaaBbb式を採用します。特に理由はありませんが、あえていえばJavaに合わせました。逆にREALbasicではAaaBbb式が一般的です。各自、違和感のない命名方式を採用するのがいいでしょう。
 ハンドラの名前とはすなわち利用者定義命令の名前ですから、「〜しろ!」と命令するつもりで、動詞を基本とするのが分りやすいと思います。

get+属性とset+属性

 setX()とgetX()という命令を組み合わせると、あたかも「X」という属性が存在しているかのようにスクリプトを書くことができます。
 AppleScriptの基本命令であるget命令set命令に合わせたわけです。
 例えば、「メールの題(subject)」という属性があると仮定すると、「メールの題」を取り出すハンドラは次のような感じで使うのがいいでしよう。

set theSubject to getSubject()

 AppleScriptでは、属性を取り出すときに、ほとんどの場合にget命令は省略して構いませんから、次のようにハンドラ名を書きたくなるかもしれません。

set theSubject to subject()

 ですが、アプリケーションやOSAXと識別子が重なる可能性が高くなりますし、命令は動詞を基本とするという原則にも反するので、getを付けておく方が無難だと言えます。
 また、getがあった方が、返り値(結果)のあるハンドラであることがはっきりすることもメリットの一つです。

 逆に「メールの題」属性を設定するハンドラは、次のようにして使えるようにしておきます。

setSubject("AppleScriptで作ってます")

 この、getXとsetXの組み合わせは、所謂「オブジェクト指向言語」での一般的な命名法です。
 つまり、この方式を採用しておけば、JavaやC++,Objective-C,REALbasic,etc.のプログラマーなら、すぐに意味を把握できるということです。もちろん、AppleScriptでもハンドラに限らず、OSAX命令なども含めて多用されています。

make+オブジェクトとdelete+オブジェクト

 新しくスクリプトオブジェクトや、アプリケーションオブジェクトを作る命令は、makeX()という形で書いて、返り値(結果)に作ったオブジェクトへの参照を返すのが一般的です。この場合「X」はオブジェクトの名前です。
 例えば、新しくメールを作る命令は、次のように書くと分りやすいでしょう。

set MailObj to makeMail()

 また、オブジェクトを削除する命令には、deleteX()の形が一般的です。  例えば、変数MailObjに格納されたメールを削除する命令は、次のように書くと分りやすいでしょう。

deleteMail(MailObj)

 これらも、アプリケーションが持つ基本的な命令であるmake命令delete命令に合わせているわけです。

add+要素とremove+要素

 要素を加える場合にはaddX()という形がいいでしょう。「X」は要素の名前です。
 例えば、メールのカーボンコピーのリストにアドレスを加える場合、次のように書くと分りやすいと思います。

addAddressToCC("mail@example.com")

 逆に、要素を取り除く場合にはremoveX()という形が自然です。「X」は要素の名前です。
 例えば、メールのカーボンコピーのリストから2つめのアドレスを取り除く場合、次のように書くと分りやすいと思います。

removeAddressFromCC(2)

 分りやすさを優先したので、ハンドラ名が長めです。
 特に複雑なスクリプトを書いている場合は、次のように端折ってしまうより、長めでも分りやすい名前の方が無難です。

addCC("mail@example.com")
removeCC(2)

 add命令とremove命令は、良く見かける命令というわけではありませんが、アプリケーション命令で利用されていることがあります。また、他の言語では割と良く使われる命名パターンです。

真偽値を返すハンドラの場合

 「判定文と真偽値」のほうでも解説していますが、属性的な使い方をするハンドラのなかでも特に真偽値を返すハンドラは、isX()やcanX()という形で書く場合があります。
 例えば、3番目のメールに添付ファイルがあることを調べる命令は、次のように書くといいでしょう。

isAdded(3)

 また、1番目のメールを送ることができるかどうかを調べる命令は、次のように書くといいでしょう。

canSend(1)

 isX()とcanX()の使い分けは主に、isは「二値状態の確認」つまり「〜か?」という場合、canはその中でも特に「可能性の確認」つまり「〜できるか?」という場合に使います。
 どちらも、基本的にはgetX()の亜種と言えます。

 とにかく、同じような機能を持っているのならば、既にあるAppleScript命令、アプリケーション命令、OSAX命令のマネをするというのが、基本です。


2001-09-03 -2003-06-27