编程语言Crystal 1.0版本发布 小编带你详细了解下Crystal

时间:2021-03-29 12:30:50 作者: MM

近日,编程语言 Crystal 发布了 1.0 版本。

Crystal 是一种通用的、面向对象的编程语言,其语法受到 Ruby 语言的启发,具有静态类型检查功能,一般不需要指定变量或方法参数的类型,可实现接近 C/C++ 的性能。

像C一样快,Ruby般丝滑

Crystal 的标语是“Fast as C, Slick as Ruby”, 翻译过来的意思是“像C一样快,Ruby般丝滑”。作为一门基于 LLVM 的可编译的静态类型语言,Crystal 的整体设计很接近 Ruby 的体验,语法与各种标准库的接口也都几乎和 Ruby 一样。

Crystal 利用了工具链中内置的所有优化,它的类型检查系统在编译期间可以捕获类型错误,从而避免运行时的错误。由于它具有内置的类型推断功能,大多数类型注释都是不必要的,代码也因此更加整洁、易于阅读。

另外,空引用检查、宏系统和 C 绑定等功能让 Crystal 成为一种功能强大且易于使用的语言,其中最突出的是 Crystal 完善的 C 绑定,而 C 库的成熟度和高性能大大弥补了 Crystal 自身语言的生态不足。

Crystal 提供了指针、结构体和函数、以及和 C 相同的枚举。开发者能够在不写一行 C 代码的情况下无缝使用 C 的库,只需要将 C 库中所需的函数的签名在 Crystal 中定义,类型上有 Crystal 提供的对应版本,或者通过重写方法让自己的类型对应 C 库中的类型。

Crystal 由一群热爱 Ruby 的人创建,开发团队喜欢 Ruby 编写代码的效率,又倾心于 C 语言的性能。因此,早期的 Crystal 高度兼容 Ruby 语法和语义,编译器用 Crystal 重写的时候只需要进行少量修改便能成功移植。

Crystal 的语言特性:

语法类似 Ruby

无需指定变量类型和方法参数类型

可以调用 C 代码

编译时代码模拟和生成

编译成高效的本机代码

示例代码:

# Compute prime numbers up to100withthe Sieve of Eratosthenes

max = 100

sieve = Array. new(max + 1, true)

sieve[ 0] = false

sieve[ 1] = false

( 2...max). eachdo|i|

ifsieve[i]

( 2* i). step(max, i) do|j|

sieve[j] = false

end

end

end

sieve.each_with_index do|prime, number|

puts number ifprime

end

结语

Crystal 类似 Ruby 的语法、无需指定变量类型和方法参数类型、C 代码调用便捷高效……基于这些突出的语言特性,Crystal 被多数用户喜爱,但其发展速度也明显比粉丝的期待慢。

相关推荐
QQ游戏

热文推荐

  • 48小时热文
  • 每周热文

编程语言Crystal 1.0版本发布 小编带你详细了解下Crystal