内容简介:Rust 1.36.0 稳定版发布了。 如果之前已经通过 rustup 安装了 Rust,那么可以通过以下方式获取 Rust 1.36.0: $ rustup update stable 或者直接从更新页面下载。 此版本的亮点包括: Future 特性已稳定 有了这种...
Rust 1.36.0 稳定版发布了。
如果之前已经通过 rustup 安装了 Rust,那么可以通过以下方式获取 Rust 1.36.0:
$ rustup update stable
或者直接从更新页面下载。
此版本的亮点包括:
Future
特性已稳定
有了这种稳定性,官方表示希望提供重要的 crates、库和生态系统时间来准备 async
/ .await
alloc
crates 已稳定
在 1.36.0 之前,标准库由 std
、 core
和 proc_macro
组成。核心包提供了核心功能,如 Iterator
和Copy
,可以在 #![no_std]
环境中使用,因为它没有强加任何要求。同时, std
crate 提供类似 Box<T>
和 OS 功能的类型,但需要全局分配器和其他 OS 功能作为回报。
从 Rust 1.36.0 开始,std
的部分依赖于全局分配器,例如 Vec<T>
现在可以在 alloc
crate 中使用。
MaybeUninit<T>
代替 mem::uninitialized
在 Rust 的早期版本中,mem::uninitialized
函数允许通过假装已在类型 T
初始化值而不执行任何操作来绕过 Rust 的初始化检查。但是mem::uninitialized
基本上无法正确使用,因为 Rust 编译器假定值已正确初始化。
为了解决这种情况,在 Rust 1.36.0 中, MaybeUninit<T>
类型已经稳定。
并且,由于 MaybeUninit<T>
是更安全的替代方案,从 Rust 1.38 开始,函数 mem::uninitialized
将被弃用。
NLL 向后移植到 Rust 2015
Rust 1.31.0 推出了 NLL(非词汇生命周期),这种语言的改进使借阅检查器变得更加智能且更加用户友好。例如,可以这样写:
fn main() {
let mut x = 5;
let y = &x;
let z = &mut x; // This was not allowed before 1.31.0.
}
在 1.31.0 中,NLL 仅在 Rust 2018 中稳定下来,并承诺会被向后移植到 Rust 2015。Rust 1.36.0 实现了这个承诺,NLL 现在可用于 Rust 2015。
一个新的 HashMap<K, V>
实现
在 Rust 1.36.0 中, HashMap<K, V>
实现已被替换为基于 SwissTable 设计的 hashbrown
crate 中的实现。虽然接口是相同的,但 HashMap<K, V>
实现现在平均更快并且具有更低的内存开销。需要注意的是,与 hashbrown
crate 不同,std
中的实现仍默认为 SipHash 1-3 散列算法。
Cargo 的离线支持
在 Rust 1.36 中,支持 --offline
改变了 Cargo 的依赖性解析算法,仅使用本地缓存的依赖关系。要预先填充本地缓存以准备脱机,请使用 cargo fetch 命令,该命令将下载项目所需的所有依赖项。
库的变更
-
dbg!
宏现在支持多个参数
新的稳定 API 包括:
task::Waker
和task::Poll
VecDeque::rotate_left
和VecDeque::rotate_right
Read::read_vectored
和Write::write_vectored
Iterator::copied
BorrowMut<str> for String
str::as_mut_ptr
详情可查看发布公告。
以上所述就是小编给大家介绍的《Rust 1.36.0 发布,dbg! 宏现在支持多个参数》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 让 performSelector:withObject:afterDelay: 支持多个参数
- 如何一条Mediainfo --Inform语句同时获取视频参数和音频参数多个Parameters
- 关于Vuex的action传入多个参数的问题
- 如何在JPQL查询中执行具有多个参数的SQL函数?
- node.js将回调函数嵌套,用promise改造成async/await顺序执行:异常处理和返回多个参数
- asp.net-mvc – ASP.NET MVC – 将多个查询字符串参数映射到一个漂亮的URL
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C语言接口与实现
(美)David R. Hanson / 人民邮电出版社 / 2010-8 / 79.00元
可重用的软件模块是构建大规模可靠应用程序的基石,创建可重用的软件模块是每个程序员和项目经理必须掌握的技能。C语言对创建可重用的API提供的语言和功能支持非常少,虽然C程序员写应用时都会用到API和库,但却很少有人去创建和发布新的能广泛应用的API。本书介绍用一种基于接口的设计方法创建可重用的API,这一方法将接口与实现分离开来,且与语言无关。书中详细描述了24个接口及其实现,便于读者深入了解此方法......一起来看看 《C语言接口与实现》 这本书的介绍吧!