2510rs,rust,1.88

原文

1.88.0稳定版中有什么

让链

此功能允许在条件中,甚至布尔式中,允许&&链接let语句,因此if/if letwhile/while let之间的区别较小.

let子式内的模式可以是无可辩驳的,链中稍后部分及体中可用绑定.

如,此代码段结合了多个之前需要嵌套iflet块的条件:

cpp 复制代码
if let Channel::Stable(v) = release_info()
    && let Semver { major, minor, .. } = v
    && major == 1
    && minor == 88
{
    println!("`let_chains` was stabilized in this version");
}

let链仅在Rust2024版本中可用,因为此功能依赖iflet临时域的变化以取得更一致的放顺序,这里.

裸函数

Rust现在支持编写没有编译器生成的尾声和序言裸函数,从而允许完全控制特定函数生成的汇编.这是在global_asm!中定义函数的更符合人体工程学的块.

用主体由单个naked_asm!组成的#[unsafe(naked)]属性标记裸函数.

如:

cpp 复制代码
#[unsafe(naked)]
pub unsafe extern "sysv64" fn wrapping_add(a: u64, b: u64) -> u64 {
    // 相当于`"a.wrapping_add(b)"`.
    core::arch::naked_asm!(
        "lea rax, [rdi + rsi]",
        "ret"
    );
}

手写汇编块定义了整个函数体:与非裸函数不同,编译器不会为参数或返回值添加任何特殊处理.裸函数用在低级设置,如Rust编译器内置,操作系统和嵌入式应用.

布尔配置

配置(cfg)判定语言现在支持,分别用作总是允许或禁止的配置的布尔字面.这适合有配置cfg_attr属性及内置配置!宏及配置和清单中的Cargo[target]表的Rust条件编译.

这里

以前,空判定列表可用在无条件配置,如cfg(all())表示允许,cfg(any())表示禁止,但该含义相当隐式且易于倒退.
cfg(true)cfg(false)更直接的表达你的意思.
这里
这里

货物自动缓存清理

稳定的API

cpp 复制代码
Cell::update
impl Default for *const T
impl Default for *mut T
mod ffi::c_str
HashMap::extract_if
HashSet::extract_if
hint::select_unpredictable
proc_macro::Span::line
proc_macro::Span::column
proc_macro::Span::start
proc_macro::Span::end
proc_macro::Span::file
proc_macro::Span::local_file
<[T]>::as_chunks
<[T]>::as_rchunks
<[T]>::as_chunks_unchecked
<[T]>::as_chunks_mut
<[T]>::as_rchunks_mut
<[T]>::as_chunks_unchecked_mut

这些以前稳定的API,现在在环境中是稳定的:

cpp 复制代码
NonNull<T>::replace
<*mut T>::replace
std::ptr::swap_nonoverlapping
Cell::replace
Cell::get
Cell::get_mut
Cell::from_mut
Cell::as_slice_of_cells
相关推荐
k4m7v2pz16 小时前
Rust 长跑守护进程日志治理:切分、时区与结构化
开发语言·后端·rust·日志系统·日志轮转·ndjson
k4m7v2pz16 小时前
Rust 高并发 WebSocket 连接管理:从线程地狱到 tokio 异步架构
websocket·架构·rust·并发编程·tokio
k4m7v2pz17 小时前
Rust 规则热重载实战:用 serde_json + notify 告别重启
开发语言·rust·json·规则引擎·notify·热重载
rustfs18 小时前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab
龙智DevSecOps解决方案19 小时前
Perforce QAC + Klocwork 视频教程:Rust 与 C/C++ 混合项目静态分析演示
rust·静态分析·perforce·klocwork·qac·代码合规
程序员爱钓鱼20 小时前
Rust 生命周期常见错误详解:看懂编译器报错并正确修复
前端·后端·rust
特立独行的猫a1 天前
Windows安装Rust环境 Clang替代GCC MinGW环境LLVM工具链(详细教程)
开发语言·windows·rust·mingw·环境搭建·llvm
红尘散仙1 天前
浏览器不能监听端口、没有文件系统,凭什么能点对点传文件?
rust·webrtc·webassembly
nnerddboy2 天前
Rust教程06:ESP32-rust环境搭建
开发语言·后端·rust
nnerddboy2 天前
Rust教程03:函数,控制流与所有权
开发语言·后端·rust