このモジュール open.data.DataWrapper は、任意型の変数値を構造体でラッピングする機能を提供します。主に配列データをラッピングするのに使用します。
VCSSLではジャグ配列が禁止されているため、配列の要素数は、各次元内では一様である必要があります。
例えば、要素数の異なる1次元の配列データをまとめて、2次元配列にする事はできません。
そこで配列データを構造体でラッピングする事により、この制約を回避する事ができます。
上の例では、1次元配列データをラッピングした構造体を作り、その構造体の配列を作る事で、2次元のジャグ配列のような構造を実現できます。
このモジュールでは、そのようなラッピング用途のために、ジェネリック構造体 DataWrapper が提供されます。
wrap関数で、任意型変数のデータをラッピングし、 DataWrapper 構造体に変換する事ができます。また、unwrap関数で、元のデータを取り出す事もできます。
なお、DataWrapperは、実際にopen.data.WrappedList, WrappedStack, WrappedQueueの実装に使用されています。
これらのモジュールでは、DataWrapperによって、要素数の異なる配列に対応したコレクション機能を実現しています。
宣言 - Declaration |
struct DataWrapper<Type> |
詳細 - Description |
任意型のデータをラッピングする構造体です。 |
- なし - None -
宣言 - Declaration |
DataWrapper<Type> wrap<Type>(Type arg) |
詳細 - Description |
任意型のデータをラッピングします。 |
引数 - Arguments |
arg : ラッピングするデータ |
戻り値 - Return |
入力値のラッパー |
宣言 - Declaration |
Type unwrap<Type>(DataWrapper<Type> wrapper) |
詳細 - Description |
ラッピングしているデータを取り出します。 |
引数 - Arguments |
wrapper : データを取り出すラッパー |
戻り値 - Return |
ラッパーが保持している値 |