Crystal:一个类似于Ruby语法的编程语言

by admin on 2020年2月15日

澳门新葡亰网址下载,Crystal 0.30.1 发表了。科瑞斯特尔 是一门基于 LLVM
的可编写翻译的静态类型语言,它的全部统筹尽只怕地相仿 Ruby
的体验,语法与各样标准库的接口都大概和 Ruby 相像(但十分 Ruby
不是它的对象)。

澳门新葡亰网址下载 1

Ruby语言在Web开垦中的地位越来越高,在红宝石风靡的同一时候,又并发了一个名字为Crystal的编程语言。Crystal是二个开源的、相像于Ruby语法的编制程序语言,其将Ruby的编制程序高效性和C语言的质量结合到了协作。性格如下:受Ruby影响的语法无须为变量或措施参数钦命项目能够透过编写制定绑定来调用C代码编写翻译时事商议估和代码生成作用,制止生出重复的样本代码能够编写翻译为快捷的本地代码示例:

支付组织代表他们心爱 Ruby 编写代码的效率,又看上于 C
语言的属性,所以制作的 Crystal 语言给开拓者提供了 Ruby
雷同的语法体验,况且还具备 C 相通的性质。

Crystal是贰个开源的、相近于Ruby语法的编制程序语言,其天性如下:相似于Ruby的语法;支持静态类型检查,但不供给点名变量类型或措施参数;可在Crystal内经过代码绑定调用C代码;在编写翻译时张开代码评估和浮动,防止了公式化的代码;编写翻译后的代码是急忙的地面码。Crystal语法:Hello
World
在Crytal中杰出的Hello
World程序代码是:接纳面向对象思路的写法是:接收块思路的写法是:就算差异写法得出的次序品质各有间隔,但便是那几个写法都是具表明力的。要运营Hellow
World程序,请先安装好不非亲非故系程序。然后把Crystal代码保存为hello.cr文件,运维调节台后键入以下命令:Crystal特性综述高效代码生成Crystal是非解释型语言,未有设想机,由LLVM编译为机械代码。你不用钦命变量类型,实例变量或措施参数,与静态编写翻译语言近似;Crytal可活动判别该使用什么样类型。多类型变量可以不钦点变量类型。倘若变量被选派了二种类型,在编写翻译时变量类型是包罗持有项目标。在运作时刻变量类型才是唯意气风发的。能够通过a.is_a?或a.responds_to?来检查项目。方法在Crystal中,方法是能够重载的,重载依赖是参数个数,类型节制及办法的施用与否。进行C绑定可在Crystal中张开C代码绑定,比方以下的SDL绑定:前途特色瞭望提供飞快的,并行的排放物回收器;提供相像于Erlang和Go的产出原生管理效果;更加好的元编制程序方式;提供协会体类型,除了实行C代码绑定,仍是能够编写更低价的包装代码和更加少的内部存款和储蓄器占用;元组,命名元组和参数。Hacker
News上开垦者对Crystal的地道批评:Habosa:我对叁个有这么佳绩文档帮助的新语言所深深触动了,其手艺博客有大多整体的里程碑式随笔。Arikrak:与Ruby如此相像的指标是怎么着吧?难道是能力所能达到平昔运营Rails?作者对此充满希望。SomeCallMeTim:它实在酷毙了!假使能够在Windows平台上可见更便捷地运营比如C/Go,就特别完美了。小说来源:crystal-lang.org

max = 100sieve = Array.new(max, true)sieve[0] = false(2...max).each do |i| if sieve[i] (2 * i).step(max - 1, i) do |j| sieve[j] = false end endendsieve.each_with_index do |prime, number| puts number if primeend

此版本 darwin 包使用 LLVM 6.0.1;在 0.30.0
中引进的“抽象方法检查”拿到了有的校正,思量了在漫天项目档期的顺序布局中定义的艺术。

Crystal的Hello World:

现身方面,libevent 2.1.11
强逼实施的新限制与运作时回升结构的办法相冲突,此版本中得到优化。

puts "Hello World"

互连网方面,修复了头文件出错的标题,还修复了 SSL
连接退步后的套接字泄漏难点。

你也得以动用面向对象方法:

实际情况查看更新说明:

class Greeter def initialize(name) @name = name.capitalize end def salute puts "Hello #{@name}!" endendg = Greeter.new("world")g.salute

要么利用块:

(文/开源中夏族民共和国卡塔尔(قطر‎    

"Hello World".each_char do |char| print charendprint 'n'

官网:Github地址:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图