タプル
タプルを使用すると、さまざまな種類の関連データを小さなコレクションのようなデータ構造にまとめることができます。MPS では、タプルは jetbrains.mps.baseLanguage.tuples 言語内で使用可能です。
索引タプル
索引タプルは構造体で、任意の型の要素をいくつか含むことができ、その要素には索引によってアクセスできます。MPS 実装は、Java オブジェクトによってタプルインスタンスを表します。MPS 内の Java オブジェクトに対する '=' および '==' 操作の通常の意味は変わりません。
[int, string] pair = [1, "a"];
int first = pair[0];
string second = pair[1];
名前付きタプル
名前付きタプルはインデックス付きタプルと似ていますが、要素がインデックスではなく名前でアクセスされる点が異なります。モデルで名前付きタプルを使用するには、最初にモデル (新規 -> jetbrains.mps.baseLanguage.tuples / tuple) で明示的に定義する必要があります。
(first, second)<string, int> pair = (first = "abcd", second = 1);
ペアの宣言:
public tuple Pair<S, T> {
S first;
T second;
}
名前付きタプル宣言
概念 NamedTupleDeclaration のルートノードには、単一の宣言が含まれています。
[public|protected|private] tuple tupleName<TypeVar, ...> {
elementType elementName;
}
宣言部 | 許可された内容 |
---|---|
tupleName | 任意の有効な識別子 |
elementType | プリミティブ型または Java 分類子に帰着する任意の型 |
elementName | 任意の有効な識別子 |