PascalABC.NET 3.8 kūrimo aplinkos išleidimas

Yra PascalABC.NET 3.8 programavimo sistemos leidimas, siūlantis Pascal programavimo kalbos leidimą su .NET platformos kodo generavimo palaikymu, galimybe naudoti .NET bibliotekas ir papildomas funkcijas, tokias kaip bendrosios klasės, sąsajos, operatorius. perkrovimas, λ išraiškos, išimtys, šiukšlių surinkimas, išplėtimo metodai, neįvardytos klasės ir autoklasės. Projektas visų pirma orientuotas į taikymą švietimo ir mokslinių tyrimų srityse. Į paketą taip pat įtraukta kūrimo aplinka su kodo užuominomis, automatiniu formatavimu, derinimo priemonė, formų kūrimo priemonė ir kodo pavyzdžiai pradedantiesiems. Projekto kodas platinamas pagal LGPLv3 licenciją. Gali būti sukurtas Linux (mono pagrindu) ir Windows.

Pakeitimai naujame leidime:

  • Добавлена поддержка срезов многомерных массивов 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] end.
  • Добавлены лямбда-выражения с распаковкой параметров, являющихся кортежами или последовательностями. Появилась возможность давать имена элементам кортежей прямо в параметрах лямбды. Чтобы распаковать параметр-кортеж t в переменные x и y, используется запись \\(x,y). Это один параметр в отличие от записи (x,y), представляющей два параметра: begin var s := Seq((‘Умнова’,16),(‘Иванов’,23), (‘Попова’,17),(‘Козлов’,24)); Println(‘Совершеннолетние:’); s.Where(\\(name,age) -> age >= 18).Println; Println(‘Сортировка по фамилии:’); s.OrderBy(\\(name,age) -> name).Println; end.
  • Разрешена конструкция «a as array of T», которая ранее была запрещена на уровне грамматики. begin var ob: object := new integer[2,3]; var a := ob as array [,] of integer; end.

Šaltinis: opennet.ru

Добавить комментарий