| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Weak ポインタとは、それが参照しているオブジェクトがガベージコレクトされることを
許すようなポインタです。
Gaucheはweak ベクタオブジェクトによってweak ポインタの機能を提供します。
Weak ベクタは通常のベクタに似ていますが、要素のオブジェクトがweak ベクタ以外から
参照されていない場合、オブジェクトはガベージコレクトされ、weak ベクタの該当するエントリは
#fで置き換えられます。
gosh> (define v (make-weak-vector 1)) v gosh> (weak-vector-ref v 0) #f gosh> (weak-vector-set! v 0 (cons 1 1)) #<undef> gosh> (weak-vector-ref v 0) (1 . 1) gosh> (gc) #<undef> gosh> (gc) #<undef> gosh> (weak-vector-ref v 0) #f |
Weak ベクタのクラスです。<sequence>と<collection>を継承しているので、
gauche.collection (gauche.collection - コレクションフレームワーク参照) と
gauche.sequence (gauche.sequence - シーケンスフレームワーク参照) も使えます。
(coerce-to <weak-vector> '(1 2 3 4)) ⇒ a weak vector with four elements |
大きさsizeのweak ベクタを作成して返します。
weak ベクタ wvecの大きさを返します。
weak ベクタ wvecのk番目の要素を返します。
weak-vector-refはkが負の値であったりベクタの長さより
大きかったりした場合はエラーを通知します。但し、省略可能な引数fallback
が与えられている場合はその値が返されます。
該当する要素が既にガベージコレクトされていた場合、fallbackが
与えられていればそれが、そうでなければ#fが返されます。
gauche.sequenceモジュールをロードしていれば、
メソッドrefも同じ目的で使えます。
weak ベクタ wvecのk番目の要素をobjに変更します。 kが負数であったりベクタの長さより大きい場合はエラーとなります。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on November, 22 2009 using texi2html 1.78.