Rust 1.77.0 发布
Rust 1.77.0 稳定版已正式发布,主要带来以下变化:
C-string literals
Rust 现在支持 C-string literals ( c"abc"
),它在&'static CStr
类型的内存中扩展为以 nul 字节结束的字符串。这使得编写与需要以 nul 结尾的字符串的外语接口互操作的代码变得更加容易,并且在编译时执行所有相关的错误检查(例如,缺少内部 nul 字节)。
Support for recursion in async fn
由于编译器限制,异步函数以前无法调用自身。在 1.77 中,该限制已被取消;因此只要使用某种间接形式来避免函数状态的无限大,就允许递归调用。
这意味着这样的代码现在可以工作:
async fn fib(n: u32) -> u32 { match n { 0 | 1 => 1, _ => Box::pin(fib(n-1)).await + Box::pin(fib(n-2)).await } }
offset_of!
1.77.0 稳定了struct fields 的offset_of!
,它提供了对 struct 相关公共字段的字节偏移量的访问。这个宏在需要字段偏移量而又没有类型实例的情况下非常有用。用户现在可以使用offset_of!(StructName, field)
访问公共字段的偏移量。
默认情况下在发布配置文件中启用 strip
未在 outputs 中启用 debuginfo 的 Cargo profiles(例如debug = 0
)将默认启用strip = "debuginfo"
。
之所以需要这样做,主要是因为(预编译)标准库附带有 debuginfo,这意味着即使本地编译没有明确请求 debuginfo,静态链接的结果也会包含标准库中的 debuginfo。
稳定的 API
array::each_ref
array::each_mut
core::net
f32::round_ties_even
f64::round_ties_even
mem::offset_of!
slice::first_chunk
slice::first_chunk_mut
slice::split_first_chunk
slice::split_first_chunk_mut
slice::last_chunk
slice::last_chunk_mut
slice::split_last_chunk
slice::split_last_chunk_mut
slice::chunk_by
slice::chunk_by_mut
Bound::map
File::create_new
Mutex::clear_poison
RwLock::clear_poison
Other changes
可查看 Rust、Cargo 和 Clippy 中发生的所有变化。
详情可查看官方公告。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Niodb - 简单的高性能本地 JSON 数据库
Niodb 是一个超级简单的高性能本地 JSON 数据库。 Github 仓库:https://github.com/billdong9/niodb 安装 $ npm i niodb --save 例子 以下代码在一个空的example_data.json文件中创建了 Nio 数据库,并添加了一些键值对到数据库中。 import { Nio } from 'niodb' // 或 const { Nio } = require('niodb') const db = await new Nio('example_data.json') db.name = 'NioDB' db.message = 'Hello NioDB!' db.users = { count: 100 } db.users.count++ example_data.json文件在代码运行之后将会变成: { "name": "NioDB", "message": "Hello NioDB!", "users": { "count": 101 } } 开始 设置 / 获取值 在...
- 下一篇
DaxPay 支付网关 v2.0.4: 增加驾驶舱、对账补全和云闪付演示
背景 在平时对接三方支付时,尤其需要对接多家支付的时候,是不是有以下痛点: 各家支付系统的调用方式、返回参数、数据签名、回调格式等都不尽相同,对接时互相之间无法复用 各家支付系统提供的支付能力不尽相同,有时候业务系统为了对客户展现的功能一致,需要写大量的适配代码才能实现 支付订单、退款订单、回调记录、订单关闭、对账分账等必要功能都需要进行实现,需要考虑各种场景才能保证不出问题 有时候业务上需要支持一些扩展的支付类型,如要支持钱包支付、支持多种支付方式进行组合支付、支持聚合支付实现一码通扫等 如果你遇到这些问题,Dromara DaxPay(开源支付网关)或许能帮助到你: 它是Dromara开源社区旗下新晋的一款开源支付网关系统,将各种支付通道(如支付宝、微信、云闪付等)的调用方式进行抽象统一,隐藏开发者不需要关注的细节,只需要一份代码就可以与多家支付通道对接。DaxPay独立部署,提供独立的管理界面,不侵入业务系统也不需要业务系统进行改造,只需要通过http进行调用就拥有相应的支付能力。除了对各类三方支付系统进行了对接,还对常用的支付方式进行了扩展,支持聚合支付、组合支付、钱包支付等功...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Red5直播服务器,属于Java语言的直播服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范