Нашри муҳити таҳияи PascalABC.NET 3.8

Нашри системаи барномасозии PascalABC.NET 3.8 дастрас аст, ки нашри забони барномасозии Паскалро бо дастгирии тавлиди код барои платформаи .NET, қобилияти истифодаи китобхонаҳои .NET ва хусусиятҳои иловагӣ ба монанди синфҳои умумӣ, интерфейсҳо пешниҳод мекунад. , изофабори оператор, λ-ифодаҳо, истисноҳо, ҷамъоварии ахлот, усулҳои васеъкунӣ, синфҳои беном ва автоклассҳо. Лоиҳа пеш аз ҳама ба барномаҳо дар соҳаи маориф ва тадқиқот нигаронида шудааст. Маҷмӯа инчунин муҳити рушдро бо маслиҳатҳои код, форматкунии худкор, ислоҳкунанда, тарроҳи форма ва намунаҳои код барои шурӯъкунандагон дар бар мегирад. Рамзи лоиҳа тибқи иҷозатномаи LGPLv3 паҳн карда мешавад. Дар Linux (моно-асоси) ва 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] 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.

Манбаъ: opennet.ru

Илова Эзоҳ