Rust 1.31 正式发布,首次引入 Rust 2018 新功能

栏目: 编程语言 · Rust · 发布时间: 5年前

内容简介:Rust 1.31 是第一个实现了 Rust 2018 独有新功能并且不保证与现有代码库兼容的版本。Rust 2018 相关工作正在进行中,而 Rust 1.31 只是整个三年开发周期的开始,这个开发周期将对这门语言进行重要的扩展。InfoQ 之前已有报道,Rust 2018 的目标是打包自上一个主要版本(Rust 2015)以来的所有已经出现的语言变更。此外,Rust 2018 将包含一些可能会破坏现有源代码的变更。比如引入了新的关键字,例如 try、async、await 等,它们可能与变量或函数名称

Rust 1.31 是第一个实现了 Rust 2018 独有新功能并且不保证与现有代码库兼容的版本。Rust 2018 相关工作正在进行中,而 Rust 1.31 只是整个三年开发周期的开始,这个开发周期将对这门语言进行重要的扩展。

InfoQ 之前已有报道,Rust 2018 的目标是打包自上一个主要版本(Rust 2015)以来的所有已经出现的语言变更。此外,Rust 2018 将包含一些可能会破坏现有源代码的变更。比如引入了新的关键字,例如 try、async、await 等,它们可能与变量或函数名称产生冲突。因此,能够选择要使用的语言版本对于编译现有代码库来说非常关键。为了实现这种方法,Rust 团队已经在 Rust 1.31 中一次性地包含了所有重大变化,尽管有些尚未完全实现。例如,他们保留了新关键字,但还不起作用,因此试图使用它们来命名变量或函数的开发人员会收到错误。需要指出的是,Rust 2015 和 2018 软件包可以在同一个程序中共存,这意味着 Rust 2018 程序可以使用 Rust 2015 软件包,反之亦然。

Rust 1.31 引入了很多主要语言功能,包括:

  • 非词法生命周期,让 Rust 可以借用检查器查看变量的实际生命周期而不必将其绑定到词法作用域。

复制代码

fnmain() {
    
   letmutx =5;
    
   lety = &x;       // In Rust 2018, y lifetime ends here,
   letz = &mutx;   // so this is ok.
  }
  • 模块路径清晰度,旨在简化使用 Rust 模块系统的方式,包括 extern crate 用法的改变、简化模块路径,等等。
  • const fn,可以被用于任意常量上下文中,并在编译时进行求值。常量函数可以包括算术或布尔运算、调用其他常量函数等,但比正常函数具有更多的限制。Rust 2015 中也提供了常量函数。

复制代码

 constfnfoo(x:i32) ->i32{
    x +1
  }
 constSIX:i32= foo(5);

不过,Rust 2018 的推出并不意味着 Rust 2015 已经结束。事实上,Rust 团队计划将所有不会破坏兼容性的变更向后移植到 Rust 2015,尽管这将在稍后的时间点发生。

你可以通过运行 rustup update stable 来安装 Rust 1.31。要试用 Rust 2018 功能,你需要在 Cargo.toml 文件的 [package] 中指定 edition = “2018”。如果没有提供版本,Rust 编译器将默认使用 Rust 2015,以最大化源代码兼容性。

在一份相关的说明中,Rust 团队还发布了Rust 2018 调查结果,旨在衡量用户对 Rust 的满意度,并说明了语言和 工具 的常见缺点。

查看英文原文: Rust 1.31 Brings the First Rust 2018 Features, Non-lexical Lifetimes and Module Improvements


以上所述就是小编给大家介绍的《Rust 1.31 正式发布,首次引入 Rust 2018 新功能》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

我的第一本编程书

我的第一本编程书

[日]平山尚 / 张沈宇 / 人民邮电出版社 / 2016-7 / 79.00元

写这本书之前,作者一直在摸索一种最有利于入门者学编程的方法,并应用到教学当中。经过两年的教学实践,他确信他的方法是有效的,于是便有了这本书。这本书面向的是完全没有接触过编程的读者。作者将门槛设置得非常低,读者不需要懂得变量、函数这些名词(这些名词在书中也不会出现),不需要会英语,完全不需要查阅其他书籍,只需要小学算术水平即可。这本书给初学者非常平缓的学习曲线,有利于为之后的进阶学习打下坚实的基础。一起来看看 《我的第一本编程书》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具