PascalABC.NET 3.8开发环境发布

PascalABC.NET 3.8 编程系统版本现已发布,提供 Pascal 编程语言版本,支持 .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] 结束。
  • 添加了带有解包参数(元组或序列)的 lambda 表达式。 现在可以直接在 lambda 参数中命名元组的元素。 要将元组参数 t 解压缩为变量 x 和 y,请使用符号 \\(x,y)。 这是一个参数,与表示法 (x,y) 不同,后者表示两个参数: begin var s := Seq(('Umnova',16),('Ivanov',23), ('Popova',17 ),('科兹洛夫', 24)); Println('成人:'); s.Where(\\(姓名,年龄) -> 年龄 >= 18).Println; Println('按姓氏排序:'); s.OrderBy(\\(姓名,年龄) -> 姓名).Println; 结尾。
  • 允许构造“a as array of T”,这在语法级别上是被禁止的。 开始 var ob: 对象 := 新整数[2,3]; var a := ob 作为整数数组 [,]; 结尾。

来源: opennet.ru

添加评论