Next: Standard Properties, Up: Symbol Properties [Contents][Index]
以下の関数を使用してシンボルプロパティーにアクセスできます。
この関数はsymbolのプロパティーリスト内の、名前がpropertyというプロパティーの値をリターンする。そのようなプロパティーが存在しなければnilをリターンする。したがって値がnilのときとプロパティーが存在しないときの違いはない。
名前propertyはeqを使用して既存のプロパティーと比較されるので、すべてのオブジェクトがプロパティーとして適正である。
putの例を参照のこと。
この関数はsymbolのプロパティーリストの、プロパティー名propertyにvalueをputして、前のプロパティー値を置き換える。put関数はvalueをリターンする。
(put 'fly 'verb 'transitive)
⇒'transitive
(put 'fly 'noun '(a buzzing little bug))
⇒ (a buzzing little bug)
(get 'fly 'verb)
⇒ transitive
(symbol-plist 'fly)
⇒ (verb transitive noun (a buzzing little bug))
この関数はsymbolのプロパティーリストをリターンする。
この関数はsymbolのプロパティーリストをplistにセットする。plistは通常は適正なプロパティーリストであるべきだが、これは強制ではない。リターン値はplistです。
(setplist 'foo '(a 1 b (2 3) c nil))
⇒ (a 1 b (2 3) c nil)
(symbol-plist 'foo)
⇒ (a 1 b (2 3) c nil)
通常の用途には使用されない特別なobarray内のシンボルでは、非標準的な方法でプロパティーリストセルを使用することに意味があるかもしれない。実際にabbrev(Abbrevsを参照)のメカニズムでこれを行なっている。
以下のようにsetplistとplist-putでputを定義できる:
(defun put (symbol prop value)
(setplist symbol
(plist-put (symbol-plist symbol) prop value)))
この関数は、getと同じですが、symbolが関数エイリアス(function
alias)の場合は、実際の関数の名づけるシンボルのプロパティーリストを参照します。Defining Functionsを参照してください。