[ < ] | [ > ] | [ << ] | [ 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.