新版本 Nim 0.20 编程语言

发生 系统编程语言发布 尼姆0.20.0。 该语言使用静态类型,在创建时考虑了 Pascal、C++、Python 和 Lisp。 Nim 源代码被编译为 C、C++ 或 JavaScript 表示形式。 随后,使用任何可用的编译器(clang、gcc、icc、Visual C++)将生成的 C/C++ 代码编译为可执行文件,如果不考虑运行成本,这可以让您实现接近 C 的性能垃圾收集器。 与 Python 类似,Nim 使用缩进作为块分隔符。 支持用于创建特定领域语言(DSL)的元编程工具和功能。 项目代码 提供 在麻省理工学院的许可下。

Nim 0.20 版本可以被视为第一个稳定 1.0 版本的候选版本,它包含了形成第一个提交语言状态的第一个稳定分支所需的几个破坏互操作性的更改。 1.0 版被认为是一个稳定的、长期支持的版本,将保证在该语言的稳定部分保持向后兼容性。 另外,编译器还将提供实验模式,其中将开发可能违反向后兼容性的新功能。

Nim 0.20 中提出的更改包括:

  • “Not”现在始终是一元运算符,即现在不允许使用“assert(not a)”这样的表达式,只允许“assert not a”;
  • 在编译阶段启用对整数和实数转换的严格检查,即表达式“const b = uint16(-1)”现在将导致错误,因为 -1 无法转换为无符号整数类型;
  • 提供了常量和循环变量的元组解包。
    例如,现在您可以使用“const (d, e) = (7, "eight")”和“for (x, y) in f”等赋值;

  • 提供哈希和表的默认初始化。 例如,声明“var s: HashSet[int]”后,您可以立即执行“s.incl(5)”,这之前会导致错误;
  • 改进了与“case”运算符和数组索引越界相关问题的错误信息;
  • 禁止在迭代期间更改表长度。

来源: opennet.ru

添加评论