MPS 2020.3 ヘルプ

タプル

タプルを使用すると、さまざまなタイプの関連データを小さなコレクションのようなデータ構造にグループ化できます。MPS では、タプル は jetbrains.mps.baseLanguage.tuples 言語内で使用できます。

索引タプル

インデックス付きタプルは構造体であり、任意のタイプの複数の要素を含めることができ、その要素にはインデックスからアクセスできます。MPS 実装は、Java オブジェクトによってタプルインスタンスを表します。MPS 内の Java オブジェクトに対する「=」および「==」操作の通常の意味は変わりません。

[int, string] pair = [1, "a"]; int first = pair[0]; string second = pair[1];

名前付きタプル

名前付きタプル はインデックス付きタプルに似ていますが、要素がインデックスではなく名前でアクセスされる点が異なります。モデルで名前付きタプルを使用するには、最初にモデルで明示的に定義する必要があります(new-> 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

任意の有効な識別子