Rust 1.83.0 发布
Rust 1.83.0 稳定版已正式发布,主要带来以下变化:
新的 const 功能
此版本对在 const contexts 中运行的代码的功能进行了多项重大扩展。指的是编译器在编译时必须评估的所有代码:const
和static
项的初始值、数组长度、枚举判别值、const 泛型参数以及可从此类上下文调用的函数(const fn
)。
对 statics 的引用。 到目前为止,除了static
项的初始化表达式之外,const contexts 都禁止引用static
项。此限制现已取消:
static S: i32 = 25; const C: &i32 = &S;
值得注意的是,在 const contexts 中仍然不允许读取可变或内部可变静态的值。此外,常量的最终值不得引用任何可变或内部可变静态:
static mut S: i32 = 0; const C1: i32 = unsafe { S }; // error: constant accesses mutable global memory const C2: &i32 = unsafe { &S }; // error: encountered reference to mutable memory in `const`
这些限制确保 constants 仍然是“constant”:它们的求值及以及它们作为模式的含义(可能涉及取消引用引用)在整个程序执行过程中将是相同的。
尽管如此,还是允许常量求值到指向可变静态或内部可变静态的原始指针:
static mut S: i32 = 64; const C: *mut i32 = &raw mut S;
可变引用和指针。 现在可以在 const contexts 中使用可变引用:
const fn inc(x: &mut i32) { *x += 1; } const C: i32 = { let mut c = 41; inc(&mut c); c };
还支持可变原始指针和内部可变性:
use std::cell::UnsafeCell; const C: i32 = { let c = UnsafeCell::new(41); unsafe { *c.get() += 1 }; c.into_inner() };
但是,可变引用和指针只能在常量的计算中使用,它们不能成为常量最终值的一部分:
const C: &mut i32 = &mut 4; // error[E0764]: mutable references are not allowed in the final value of constants
此版本还附带了一整套新功能,这些函数现在在 const contexts 中很稳定。
详情可查看官方公告:https://blog.rust-lang.org/2024/11/28/Rust-1.83.0.html

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MooTool 1.6.5 发布,开发者常备小工具
MooTool 1.6.5 已发布,这是一个用 Java 编写的开发者常备桌面小工具集。 近期更新内容 修复macOS15下无法启动的问题 优化随手记中语法高亮语言类型的展示 优化macOS图标 优化HTTP工具,支持同页面展示响应信息,保存历史记录 随手记快捷替换支持按行去重及按行去重统计 随手记快捷替换支持转义和反转义 随手记快捷替换增加comma和换行之间的互相替换 随手记增加对自动换行的记忆 随手记优化java格式化功能 JSON工具支持转义和反转义 JSON工具增加JavaBean和JSON互转功能 首次初始化时的细节优化 新增快捷键:Command + W 最小化窗口 格式化Tab支持文本格式化 下载地址:https://gitee.com/zhoubochina/MooTool/releases 询问AI
- 下一篇
如意玲珑容器构建成果的跨发行版移植,是奇迹还是挑战?
支持社区 有听过《如意玲珑--新时代Linux桌面应用分发和治理方案》[1]的朋友应该知道,“通过隔离技术彻底解决系统与应用、应用与应用之间因升级引起的兼容性冲突问题”是如意玲珑方案众多核心特性之一。基于上述特性以及《如意玲珑技术架构介绍》[2],我们可以知道如意玲珑方案主要通过沙箱、容器方案来对应用与系统进行隔离,这就意味着应用容器中的大部分目录仅具备只读权限, 无法当作日常系统环境来使用。 近期,如意玲珑与 OpenTenBase 开源社区开展了“跨界”合作,在如意玲珑容器中试验性地进行了 OpenTenBase 开源项目的源代码编译,且成功运行了。在此基础上,我手握 OpenTenBase 源码,又开始了一轮如意玲珑构建环境的可移植性探索,发现在如意玲珑容器里编译的项目居然可以直接拿出来用,打破了如意玲珑无法实现完整系统环境的功能现状。接下来就和大家好好聊聊如何实现这项操作。 如意玲珑容器操作展示 为了补偿部分朋友无法见证如意玲珑与 OpenTenBase 开源社区“跨界”分享的现场演示,我这里简单将操作过程向各位展示一遍。 前期准备 1. 本次分享基于 deepin 23 发...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7