为什么你需要近距离接触 Rust 1.0(2)

在整数切片上一次运算完成,当优化开启时,甚至编译为SIMD向量指令。
强大的类型

传统上,函数式编程语言提供类似代数数据类型、模式匹配、闭包和灵活的类型推断的功能。Rust是许多新开发的语言之一,它并不是直接适用具有这些特性的函数模型,而是用一种方式合并它们——允许在不损耗性能的情况下适用的一个灵活的应用程序接口(APIs)。

上面的迭代器示例得益于许多这样的想法:这完全是静态类型,但类型推断意味着不必要写明那些类型。闭包也是至关重要的,它允许简洁地编写操作。

在多数主流编程语言中,代数数据类型是枚举(enums)的一个扩展,它允许一个数据类型由一组离散的选择组成,且每个选择都会附加信息:

Java代码

struct Point {
    x: f64,
    y: f64
}
enum Shape {
    Circle {
        center: Point,
        radius: f64
    },
    Rectangle {
        top_left: Point,
        bottom_right: Point
    },
    Triangle {
        a: Point,
        b: Point,
      c: Point
    }
}

模式匹配是使操纵这些类型变得简单的关键,如果shape是一个Shape类型的值,你可以处理各种可能性:

Java代码

match shape {
    Shape::Circle { radius, .. } => println!("found a circle with radius {}", 
radius),
    Shape::Rectangle { top_left: tl, bottom_right: br } => {
        println!("found a rectangle from ({}, {}) to ({}, {})",
                tl.x, tl.y,
                br.x, br.y)
    }
    Shape::Triangle { .. } => println!("found a triangle"),

这些编译器可以确保你解决所有情况(选择性加入一个catch-all分句),并极大程度地帮助重构。
枚举(enums)也使得Rust防治所谓的“价值数十亿美元”的错误:空引用(null references)。在Rust中引用永远不会是空的,选择类型允许你以一种类型安全、本地化的方式选择nullability。

结论

Rust是一种由Mozilla赞助的语言,它在保留C++性能的同时提供零开销抽象,用于web浏览器开发,还能同时保证内存安全和缓解并发编程的压力。

Rust填充了一个也许被认为是不可能的利基:在不背离安全和抽象的情况下,提供底层控制和性能。当然,世界上没有免费的午餐,编译器作为一个要求 助理不能容忍一点点风险,而且所有权模式还有点陌生,需要一些时间学习。

1.0版本的核心语言和库已经被测试和精炼过,而且重要的是关于稳定的保证:现在编译的代码应该也可以在未来的新版本中得到编译。并且,这个版本 并不意味语言的完成,Rust正在采用火车模型,新版本每六周发布一次,新的和不稳定的特性可以通过常规的预发布版本betas和nightlies发 现。目前,一个标准的包管理器Cargo已经被用来建立一个不断增长的库系统。

正如语言一样,Rust生态还不完善,所以没有像许多老一辈的语言提供的那样宽广的工具和包(简单的FFI虽然对后者有所帮助)。尽管如此,语言本身是强大的,也是一个没有传统危险的,去做底层开发很好的方式。

为什么我说 Rust 是靠谱的编程语言 

Rust 1.2 稳定版发布下载,Mozilla 编程语言

Rust 的详细介绍请点这里
Rust 的下载地址请点这里



原文链接:Why you should take a closer look at Rust 1.0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/943778a1ef1d5995c1e4fae7a96cc156.html