PascalABC.NET 3.8開発環境のリリース

PascalABC.NET 3.8 プログラミング システムのリリースが利用可能になり、.NET プラットフォームのコード生成のサポート、.NET ライブラリの使用機能、およびジェネリック クラスやインターフェイスなどの追加機能を備えた Pascal プログラミング言語のエディションが提供されます。 、演算子のオーバーロード、λ 式、例外、ガベージ コレクション、拡張メソッド、名前のないクラス、自動クラス。 このプロジェクトは主に教育と研究への応用に焦点を当てています。 このパッケージには、コード ヒント、自動フォーマット、デバッガー、フォーム デザイナー、初心者向けのコード サンプルを備えた開発環境も含まれています。 プロジェクト コードは LGPLv3 ライセンスに基づいて配布されます。 Linux (Mono ベース) および Windows 上に構築できます。

新しいリリースでの変更点:

  • 多次元配列のスライスのサポートを追加しました begin var m := MatrByRow(||1,2,3,4|,|5,6,7,8|,|9,10,11,12||); Println(m[:,:]); // [[1,2,3,4],[5,6,7,8],[9,10,11,12]] Println(m[::1,::1]); // [[1,2,3,4],[5,6,7,8],[9,10,11,12]] Println(m[1:3,1:4]); // [[6,7,8],[10,11,12]] Println(m[::2,::3]); // [[1,4],[9,12]] Println(m[::-2,::-1]); // [[12,11,10,9],[4,3,2,1]] Println(m[^2::-1,^2::-1]); // [[7,6,5],[3,2,1]] Println(m[:^1,:^1]); // [[1,2,3],[5,6,7]] Println(m[1,:]); // [5,6,7,8] Println(m[^1,:]); // [9,10,11,12] Println(m[:,^1]); // [4,8,12] 終了。
  • タプルまたはシーケンスである解凍パラメータを含むラムダ式を追加しました。 ラムダパラメータでタプルの要素に直接名前を付けることができるようになりました。 タプル パラメーター t を変数 x と y に解凍するには、\\(x,y) という表記を使用します。 これは、16 つのパラメーターを表す (x,y) という表記とは対照的に 23 つのパラメーターです。 begin var s := Seq(('Umnova',17),('Ivanov',24), ('Popova',18 ),(' コズロフ', XNUMX)); Println('大人:'); s.Where(\\(名前,年齢) -> 年齢 >= XNUMX).Println; Println('姓で並べ替え:'); s.OrderBy(\\(名前,年齢) -> 名前).Println; 終わり。
  • 以前は文法レベルで禁止されていた「T の配列としての a」という構築が許可されます。 begin var ob: object := new integer[2,3]; var a := ob 整数の配列 [,] として。 終わり。

出所: オープンネット.ru

コメントを追加します