东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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:001509
用户头像

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

关注

评论

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

CCKS 2023 | 度小满数据智能总经理杨青分享知识图谱在金融领域的应用

科技热闻

对线面试官 - MQ数据丢失问题的解决方案

派大星

MQ Java 面试题

1行Python代码,给视频加水印,小白都能用

程序员晚枫

Python 视频 水印

“PO价值最大化”沙盘演练 · 上海 · 9月23日

ShineScrum捷行

价值

Apache Celeborn 让 Spark 和 Flink 更快更稳更弹性

Apache Flink

大数据 flink 实时计算

@Configuration 注解的 Full 模式和 Lite 模式!

江南一点雨

Java spring

交易所量化炒币智能机器人系统搭建开发

V\TG【ch3nguang】

量化交易机器人开发 炒币机器人

虚拟货币量化交易机器人开发步骤|区块链炒币机器人开发源码功能详解

V\TG【ch3nguang】

虚拟货币 量化交易机器人开发

零信任体系化能力建设(5):数据安全与控制跟踪

权说安全

网络安全 零信任

合合信息启信宝与全国性股份制商业银行达成合作,聚焦产业链数字化管理

合合技术团队

人工智能 大数据 银行

蓝易云:如何检查Linux硬盘大小、类型和硬件详细信息?

百度搜索:蓝易云

云计算 Linux 运维 云服务器

ios ipa包上传需要什么工具

雪奈椰子

ios打包

JVM 内存大对象监控和优化实践

vivo互联网技术

监控 内存 优化 大对象 故障转移

IPP swap孵化器丨LP质押挖矿丨算力分红丨系统开发解决方案

V\TG【ch3nguang】

DeFi去中心化系统开发

R语言之处理大型数据集的策略

timerring

R 语言

蓝易云:Alma Linux 9 上安装 Node.js 的 3 种不同安装教程!

百度搜索:蓝易云

node.js 云计算 Linux 运维 Alma

“业务敏捷的领导力” 工作坊 · 2023年9月3日

ShineScrum捷行

区块链挖矿系统源码|TRX区块链质押挖矿系统开发

V\TG【ch3nguang】

质押挖矿 区块链技术开发

内网即时通讯软件,打造企业信息保密壁垒

WorkPlus

解锁安全高效办公——私有化部署的WorkPlus即时通讯软件

WorkPlus

Excelize 开源基础库 2.8.0 版本正式发布

xuri

开源 Excel Go 语言 Excelize 开源软件供应链

智定义、易调整,火山引擎DataLeap助力企业轻松实现全流程值班管理

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 企业号 8 月 PK 榜

网络直播源码UDP协议搭建:为平台注入一份力量

山东布谷科技

软件开发 udp 流媒体技术 网络直播源码 用户数据报协议

测试代码终极解决方案 Monkey Patching

江湖十年

golang 后端 单元测试

Programming abstractions in C阅读笔记:p130-p131

codists

c

技术之外的职场成长指南

老张

职场成长 职场经验 沟通技巧

首创端云一体多情感模型 火山语音创新发布PortaSpeech 2

科技热闻

DeFi质押流动性挖矿模式系统DAPP开发

V\TG【ch3nguang】

DeFi流动性挖矿 质押挖矿

推荐三款适合运维小白的网络监测工具

小魏写代码

Stack Overflow开发者调查发布:AI将如何协助DevOps

SEAL安全

人工智能 DevOps 开发者报告 企业号 8 月 PK 榜

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