Выпуск асяроддзя распрацоўкі PascalABC.NET 3.8

Даступны выпуск сістэмы праграмавання PascalABC.NET 3.8, якая прапануе рэдакцыю мовы праграмавання Паскаль з падтрымкай генерацыі кода для платформы. NET, магчымасцю выкарыстання бібліятэк. NET і дадатковымі магчымасцямі, такімі як абагульненыя класы, інтэрфейсы, перагрузка аперацый, λ-выразы, выключэнні, зборка смецця, метады пашырэння, безназоўныя класы і аўтакласы. Праект галоўным чынам арыентаваны на прымяненне ў сферы адукацыі і навуковых даследаванняў. Пакет таксама ўключае асяроддзе распрацоўкі з падказкамі па кодзе, аўтафарматаваннем, адладчыкам, дызайнерам формаў і ўзорамі кода для пачаткоўцаў. Код праекту распаўсюджваецца пад ліцэнзіяй 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] 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

Дадаць каментар