您现在的位置是:首页 > 文章详情

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

日期:2022-01-07点击:600

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

最新发布的版本包含错误修复和功能改进,涉及到编译器、代码生成、调试器、解析器、语义、语法、标准库、加密、网络、运行时和语法宏等方面,详情查看 release note

部分亮点

系统调用(SYSCALLS)

添加了一个实验性 API 来创建原生系统调用 (#10777)。目前仅支持 Linux。这是支持 Linuxio_uring接口以提高 IO 性能的第一步。

如需定义系统调用,请打开一个模块并使用Syscall.def_syscall宏。如以下示例所示,需要传入系统调用名称、返回类型及其参数。

 require "syscall" module MySyscalls Syscall.def_syscall write, Int32, fd : Int32, buf : UInt8*, count : LibC::SizeT end data = "Hello!\n" MySyscalls.write(1, data.to_unsafe, LibC::SizeT.new(data.size))

支持 128 位字面量

通过改进解析器,现在可以理解完整范围内的数字文字或 128 位整数 (#11571)。到目前为止,仅在 64 位值的范围内支持 128 位文字。

 1_i128 # Works in 1.2.2 and 1.3.0 170141183460469231731687303715884105727_i128 # Fails in 1.2.2, works in 1.3.0
 1_.1 # Error: unexpected '_' in number -0u64 # Error: Invalid negative value -0 for UInt64 -0_u64 # Error: Invalid negative value -0 for UInt64 1__2 # Error: consecutive underscores in numbers aren't allowed 0x_2 # Error: unexpected '_' in number 0_12 # Error: octal constants should be prefixed with 0o 0e40 # => 0.0 0x # Error: numeric literal without digits

详细更新说明点此查看

原文链接:https://www.oschina.net/news/177517/crystal-1-3-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章