“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

Rust 1.8 引入新的基于 Cargo 的搭建系统和更多新特性

  • 2016-04-26
  • 本文字数:1177 字

    阅读完需:约 4 分钟

Rust 1.8 中加入了许多新语言特性,并对现有标准库进行了许多改进。此外,它为 rustc 引入了新的基于 Cargo 的搭建系统,在启动 Rust 的第一步时可以看到。

第一个新特性考虑到了“等号运算符”库中的运算符,例如 += 和 -=,它们现在可以使用特性重载。这使得在Count 类中明确+= 运算符成为可能,范例代码如下所示:

复制代码
use std::ops::AddAssign;
#[derive(Debug)]
struct Count {
value: i32,
}
impl AddAssign for Count {
fn add_assign(&mut self, other: Count) {
self.value += other.value;
}
}

第二个 Rust 语法变更是较小的,之前在定义没有字段的结构时需要大括号,在现在的1.8 版本中大括号可以省略,例如:

复制代码
struct Foo; // this is correct, whereas previously struct Foo {} was required

这个变更让编写宏命令变得更容易,我们不再需要将其作为一个特殊情况进行考虑,也不需要在空结构和非空结构之间转换。

更进一步来说,Rust 1.8引入了新的基于 Cargo 的搭建系统,它将最终取代 Make。根据 Rust 开发者,上述 PR 的提交者,实现了这个变更的 Alex Crichton 所说,引入新的搭建系统有以下几个原因:

  • Makefiles 通常来说都是不可修改的,因此如果必须修改它时很困难;
  • make虽然便携性很强,但它也不是在“任何情况下”都可以移植,由于在 Windows 系统下缺乏默认make,经常会出现不可移植情况;
  • 将 Rust 编译器和标准库迁移到 Cargo 上给 Rust 程序员的开发过程带来了很多统一性,也使得一些常用工具,例如 crates.io package manager 可以使用;

上述的几点都需要很高的成本,因为 Rust 使用基于make的搭建系统已经许多年了。因此 Crichton 写到,取代make的过程“路漫漫其修远兮”。

正如上面所提到过的,在bootstrapping Rust 的第一步中可以看到100%-Rust 搭建系统,这将在 Rust 1.10 中实现。

最好,Rust 1.8 在其标准库中添加了stabilization 库,有这些主要变化:UTF–16-related 方法,不同的基于时间的APIs 以及上面提到的运算符重载需要用到的特性。

目前还在测试阶段的另一个Rust 1.8 的新特性是 rustup ,它可以让开发者安装不同平台下的stdlib版本,这让跨平台编译变得更简单。下面的例子展示了如何自动处理所有依赖需求:

复制代码
$ rustup target add x86_64-unknown-linux-musl
info: downloading component 'rust-std' for 'x86_64-unknown-linux-musl'
13.77 MiB / 13.77 MiB (100.00%) 1.47 MiB/s ETA: 0s
info: installing component 'rust-std' for
'x86_64-unknown-linux-musl'

Rust 1.8 现在可以在这里下载,如果你想了解更多发行说明请点击这里

查看英文原文 Rust 1.8 Introduces New Cargo-based Build System and More


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-26 19:001502
用户头像

发布了 218 篇内容, 共 64.6 次阅读, 收获喜欢 75 次。

关注

评论

发布
暂无评论
发现更多内容

来用友BIP技术大会,一同见证IT组织从传统运维向价值运营大转变

用友BIP

技术大会 用友iuap 用友技术大会 升级企业数智化底座

openGauss社区用户委员会工作会议顺利召开

openGauss

江苏智慧公厕:让厕所成为城市新名片

光明源智慧厕所

智慧园区

白嫖!字节跳动 Java岗顶级面试解析(2023版),GitHub巅峰神作!

三十而立

Java java面试

二极管/三极管/MOS管的封装类型,看这一篇就够了!

元器件秋姐

科普 封装 三极管 元器件 二极管

openGauss数据库源码解析系列文章——SQL引擎源码解析(一)

openGauss

AI黑云压城,程序员真的没有未来了吗?| 社区征文

bug菌

三周年征文

不会吧?该不会还有企业没实现员工赋能吧!绝对是你没选低代码的问题!

加入高科技仿生人

知识管理 低代码 系统开发 员工赋能

华中科技大学网络空间安全学院正式加入openGauss社区

openGauss

IDEA统计代码行数

六月的雨在InfoQ

IDEA 三周年连更 statistic 代码行数

ElasticSearch 自定义相似度插件-根据命中数排序

alexgaoyh

elasticsearch 自定义插件 相似度算法 词频排序 命中数排序

直播|StarRocks 3.0 极速统一的湖仓新范式

StarRocks

大数据 开源 数据湖 #数据库 湖仓一体

云和恩墨大讲堂 x 长江鲲鹏 x openGauss Meetup(武汉站)圆满落幕!

openGauss

讲真,这次文档页升级我们用心了

百度开发者中心

百度地图

除了价格降70%,关于对象存储预留空间你还需要了解这些

云布道师

云存储

肝完阿里最新Java并发编程全优笔记,我成功晋升公司架构组

三十而立

Java java面试

人工智能基础数据服务,第一!

百度开发者中心

人工智能 云宇宙 百度文心一言

通过alter table 来实现重建表,同事大呼开眼界了

架构精进之路

MySQL 数据库· 三周年连更

openGauss加入 CNCF Landscape

openGauss

艾融软件正式加入openGauss社区

openGauss

REST API 设计规范:最佳实践和示例

Apifox

程序员 协议 API 接口开发 REST API

2023面试到底有多难?大厂为何都注重算法?我们该如何应对?

程序知音

Java 面试 算法 数据结构与算法 后端技术

ElasticSearch 分组统计(逗号分割字符串/nested集合对象)

alexgaoyh

elasticsearch 分组查询 聚合查询 逗号分割 nested

openGauss加入 CNCF Landscape

openGauss

艾融软件正式加入openGauss社区

openGauss

openGauss 5.0.0版本正式发布!

openGauss

本周最火AutoGPT!GitHub3.6万+标星,解决复杂任务全程无需人类插手

Openlab_cosmoplat

人工智能 GitHub 开源社区 autogpt

云数据库技术沙龙4月22日在杭州举办!

数据库小组

MySQL 阿里云 字节跳动 Clickhouse 玖章算术

便捷高效,Notion AI比ChatGPT更加香!

南城FE

人工智能 AI 前端 ChatGPT

ChatGPT大面积封号+停止注册?最火概念要凉?

这我可不懂

低代码 源代码 ChatGPT

别再吐槽公厕了!杭州智慧公厕解决方案带来惊喜

光明源智慧厕所

智慧城市

Rust 1.8引入新的基于Cargo的搭建系统和更多新特性_语言 & 开发_Sergio De Simone_InfoQ精选文章