Dプログラミング-タプル
タプルは、複数の値を単一のオブジェクトとして結合するために使用されます。 タプルには一連の要素が含まれます。 要素には、型、式、またはエイリアスを指定できます。 タプルの数と要素はコンパイル時に固定され、実行時に変更することはできません。
タプルには、構造体と配列の両方の特性があります。 タプル要素は、構造体のようなさまざまなタイプにすることができます。 要素は、配列のようなインデックスを介してアクセスできます。 これらは、std.typeconsモジュールのTupleテンプレートによってライブラリ機能として実装されます。 Tupleは、一部の操作にstd.typetupleモジュールのTypeTupleを使用します。
tuple()を使用したタプル
タプルは、関数tuple()によって構築できます。 タプルのメンバーは、インデックス値によってアクセスされます。 例を以下に示します。
例
上記のコードをコンパイルして実行すると、次の結果が生成されます-
タプルテンプレートを使用したタプル
tupleは、tuple()関数の代わりにTupleテンプレートによって直接構築することもできます。 各メンバーのタイプと名前は、2つの連続したテンプレートパラメーターとして指定されます。 テンプレートを使用して作成すると、プロパティによってメンバーにアクセスできます。
上記のコードをコンパイルして実行すると、次の結果が生成されます。
プロパティと関数のパラメーターの拡張
Tupleのメンバーは、.expandプロパティまたはスライスによって展開できます。 この展開/スライスされた値は、関数の引数リストとして渡すことができます。 例を以下に示します。
例
上記のコードをコンパイルして実行すると、次の結果が生成されます-
タイプタプル
TypeTupleはstd.typetupleモジュールで定義されています。 値とタイプのコンマ区切りリスト。 TypeTupleを使用した簡単な例を以下に示します。 TypeTupleは、引数リスト、テンプレートリスト、および配列リテラルリストの作成に使用されます。
上記のコードをコンパイルして実行すると、次の結果が生成されます-