Crystal 1.4.0 发布,语法类似 Ruby 的编译型编程语言

Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerma

Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和 300 多名贡献者设计开发。Crystal 的语法受到 Ruby 的启发,属于编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类型,可实现接近 C/C++ 的性能。它的类型由一个先进的全局类型推理算法来解决。

最新发布的 1.4.0 版本包含错误修复和功能改进,涉及到语法、标准库、集合、加密、文件、语法宏、网络、运行时和规范等,详情查看 release note。

值得关注的变化

初步支持 WebAssembly

1.4.0 版本提供了对 WebAssembly 支持的 MVP 实现(最小可行性产品),目前只支持将 Crystal 程序编译为 WebAssembly,以及与基于 WASI 的 LibC 连接,尚未支持浏览器。更多技术细节查看此 PR。

对实例和类变量提供更好的类型推断

在此版本之前,像下面的简单程序无法推断出实例变量的类型:

class DisplayHello
  DELAY = 10.milliseconds

  @timer_countdown = DELAY
end

在新版本中可正常编译,正确推断出@timer_countdown变量的类型为Time::Span

class DisplayHello

  def initialize(delay : Time::Span)
    @timer_countdown = delay + 10.seconds
  end
end

点此查看更多技术细节。

其他重要变更

  • 支持 LLVM 14 (#11905)
  • 面向Int128提供完整的编译器支持 (#11576)
  • BigFloat#to_s中提供对科学计数法的支持 (#10632)
  • 不再支持无文档 flagskip_abstract_def_check (#9217)
  • ……

点此查看详细更新说明。

关于作者: qwephp

.

为您推荐