文章摘要
Rust团队发布了1.96.0新版本,这是一个构建可靠高效软件的编程语言。用户可通过rustup更新,新版本引入了新的Range*类型以解决原有类型无法同时实现Iterator和Copy的问题。团队鼓励用户测试beta或nightly版本并反馈问题。
文章总结
Rust 1.96.0 版本发布公告
Rust 团队很高兴地宣布 Rust 1.96.0 版本发布。Rust 是一门让每个人都能构建可靠高效软件的编程语言。
安装与更新:
- 已安装 Rust 的用户可通过 rustup update stable 升级
- 新用户可从官网获取 rustup
- 详细更新日志见 1.96.0 发布说明
主要更新内容:
- 新增 Range 类型
- 引入
core::range模块下的新 Range 类型(Range/RangeFrom/RangeInclusive) - 新类型实现
IntoIterator而非Iterator,因此可标记为Copy - 未来版本将迁移现有范围语法到新类型
- 新增断言匹配宏
- 引入
assert_matches!和debug_assert_matches!宏 - 相比
assert!(matches!(...))能提供更详细的错误信息 - 需手动从
core或std导入使用
- WebAssembly 目标变更
- 默认不再传递
--allow-undefined链接器参数 - 未定义符号将导致链接错误而非自动导入
- 可通过环境变量或属性恢复旧行为
- 稳定化 API
- 新增多个 Range 相关类型及迭代器
- 实现多个 From
转换 - 完整列表见官方文档
安全公告: - 修复两个第三方注册表相关漏洞(CVE-2026-5223 和 CVE-2026-5222) - crates.io 用户不受影响
其他变更: - Rust/Cargo/Clippy 的详细变更见各项目发布说明
致谢: 感谢所有为 1.96.0 版本做出贡献的开发者。
(注:原文中的示例代码、RFC 链接等技术细节已保留,安装步骤等常规信息做了简化处理,时间信息等非关键内容做了删减)
评论总结
总结评论内容:
- 对改进的肯定态度
- 主要观点:欢迎range功能的改进
- 关键引用: "Woohoo, assert_matches! After all these years!"(评论2) "I honestly didn't expect the ranges to be ever fixed"(评论1)
- 版本迭代的担忧
- 主要观点:质疑用新版本直接替换旧版本的做法
- 论据:可能导致混乱,未来改进时命名会更复杂
- 关键引用: "what if a design improvement is found in some years...Will it end up as a std::range::legacy::legacier?"(评论3) "std::range should stay where it is, and the new one be introduced as std::range/v2"(评论3)
- 标准库发展模式的批评
- 主要观点:认为Rust标准库发展过于保守
- 论据:Go语言的标准库设计更好,Rust因担心API永久性而不敢添加新功能
- 关键引用: "The old adage against adding APIs...has meant that Rust never takes a stance"(评论3) "they got it much better thought out"(评论3)
注:所有评论均未显示评分(None),因此无法评估社区认可度。观点呈现较平衡,既有对改进的欢迎,也有对具体实施方案的质疑,以及对整体发展模式的批评。