Next: , Up: Symbol Properties   [Contents][Index]


8.4.1 Accessing Symbol Properties

以下の関数は、シンボルプロパティーへのアクセスに使用できます。

Function: get symbol property

この関数は、symbolのプロパティーリスト内の、propertyという名前のプロパティーの値をreturnします。そのようなプロパティーが存在しない場合は、nilをreturnします。したがって、値がnilのときと、プロパティーが存在しない場合の違いはありません。

名前propertyは、eqを使用して既存のプロパティーと比較されるので、任意のオブジェクトはプロパティーとして適正です。

例はputを参照してください。

Function: put symbol property value

この関数は、symbolのプロパティーリストの、プロパティー名propertyvalueを配して、以前のプロパティー値を置き換えます。put関数は、valueをreturnします。

(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))
Function: symbol-plist symbol

この関数は、symbolののののプロパティーリストをreturnします。

Function: setplist symbol plist

この関数は、symbolのプロパティーリストを、plistにセットします。plistは通常、適正なプロパティーリストであるべきですが、これは強制ではありません。return値は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を参照してください)のメカニズムは、これを行なっています。

以下のように、setplistplist-putにより、putを定義できます:

(defun put (symbol prop value)
  (setplist symbol
            (plist-put (symbol-plist symbol) prop value)))
Function: function-get symbol property

この関数は、getと同じですが、symbolが関数エイリアス(function alias)の場合は、実際の関数の名づけるシンボルのプロパティーリストを参照します。Defining Functionsを参照してください。