MPS 2023.3 ヘルプ

コレクションの言語

コレクションのサポートを追加する Base Language の拡張。

導入

コレクション言語は、いくつかの最も一般的に使用されるコンテナーの使用を可能にする一連の抽象化と、クエリを構築するための一連の強力なツールを提供します。コレクションによって提供される基本的な型は sequence です。これは、Java の Iterable または .NET の IEnumerable に類似した抽象化です。コンテナーには、 list (配列ベースとリンクリストの両方)、 set および map が含まれます。コレクション言語は、LINQ(英語) が行うのと同様の方法で、closures を使用して表現力豊かなクエリを構築する手段も提供します。

NULL 処理

コレクション言語には、null 要素と null シーケンスに関する一連の緩和された規則があります。

NULL シーケンスはまだシーケンスです

Null は、シーケンス変数に割り当てることができる完全に受け入れられた値です。これは単に空のシーケンスになります。

sequence<Type> nullSeq = null;

例外をスローする代わりに null が返される

標準のコレクションフレームワークは、正常に完了できないメソッドの呼び出しの結果として例外をスローしますが、コレクション言語のシーケンスとそのサブタイプは null 値を返します。例: 空のシーケンスで first 操作を呼び出すと、例外がスローされる代わりに null 値が生成されます。

sequence<Type> nullSeq = null; Type nullValue = nullSeq.first;

文をスキップして停止する

skip

selectMany または forEach クロージャー内に適用可能です。 skip ステートメントの効果は、現在の入力要素の処理が停止し、次の要素(利用可能な場合)がすぐに選択されることです。

停止

selectMany クロージャーまたはシーケンスイニシャライザークロージャー内に適用可能です。stop ステートメントは、出力シーケンスの構成を即時に終了させ、入力シーケンス内の残りのすべての要素(存在する場合)を無視します。