Next: コマンドライン引数の解析, Previous: パッケージメタ情報, Up: ライブラリモジュール - Gauche拡張モジュール [Contents][Index]
gauche.parameter
- パラメータ(追加)パラメータは組み込みになったので、パラメータの基本機能を使うだけなら
このモジュールをuse
する必要はありません。
このモジュールは主として、(use gauche.parameter)
している既存のコードが
エラーにならないために存在しています。
また、あまり使われないパラメータオブザーバのインタフェースがこのモジュールで提供されます。
{gauche.parameter} procをパラメータpの“オブザーバ”手続きに追加します。 オブザーバ手続きは、(1)パラメータに新しい値がセットされる直前、 あるいは(2)パラメータに新しい値がセットされた直後、に呼ばれます。 (1)の場合、コールバックが呼ばれる前にフィルタ手続きがすでに適用 されています。どちらの場合も、オブザーバ手続きは、古い値と新しい 値の2引数を伴って呼ばれます。オブザーバ手続きの戻り値は無視されます。
オプショナル引数whenは、シンボルbefore
かafter
の
いずれかでなければならず、値が変更された前と後のどちらでprocが
呼ばれるかを指定します。省略されると、after
を指定したものと
されます。
オプショナル引数whereは、シンボルappend
かprepend
の
いずれかでなければならず、procが既存のオブザーバ手続きのリストの
前に追加されるか後に追加されるかを指定します。省略されると、append
を指定したものとされます。
注意: パラメータの値自身がスレッドローカルであっても、 オブザーバのリストは全てのスレッドで共有されます。
{gauche.parameter}
パラメータpのオブザーバ手続きのリストからprocを削除します。
procがリストになければ、何も起こりません。
when引数にシンボルbefore
かafter
を与えて、
procをどちらのリストから削除するかを指定することができます。
when引数が省略されると、procは両方のリストから削除されます。
{gauche.parameter} “before”か“after”オブザーバをそれぞれキープするフックオブジェクト (フック参照)を返します。
注意: パラメータの値自身がスレッドローカルであっても、 オブザーバのリストは全てのスレッドで共有されます。
Next: コマンドライン引数の解析, Previous: パッケージメタ情報, Up: ライブラリモジュール - Gauche拡張モジュール [Contents][Index]