查看原文
其他

Rust或将添加关键字泛型

出品 | OSC开源社区(ID:oschina2013)
负责 Rust 语言特性的团队成员发起了 Keyword Generics Initiative,称此举旨在探索是否要为 Rust 添加关键字泛型

"Initiative" 是 Rust 治理模式中的术语,与 "working group" 和 "team" 不同,其具有临时性质。"Initiative" 存在的意义是为了探索、设计和实现特定的工作内容。一旦这项工作结束,临时组建的 "Initiative" 也就随之结束。

据介绍,虽然 Rust 支持泛型,但无法为其他常见的由关键字声明的事物添加泛型。例如使用 const 或 async 的函数。
不过 “关键字泛型” 不仅仅是为了异步而设计,其最终目的是让其适用于所有修饰符关键字 —— 包括可能将来才定义的关键字。总的来说,他们希望通过此次对 “关键字泛型” 的探索来填补这一空白:为 const 和 async 等关键字添加泛型的能力。
示例代码
async<A> trait Read { async<A> fn read(&mut self, buf: &mut [u8]) -> Result<usize>; async<A> fn read_to_string(&mut self, buf: &mut String) -> Result<usize> { ... }}
/// Read from a reader into a string.async<A> fn read_to_string(reader: &mut impl Read * A) -> std::io::Result<String> { let mut string = String::new(); reader.read_to_string(&mut string).await?; string}
目前尚未有关于 “关键字泛型” 的 RFC 文档,团队成员称现在处于 "pre-RFC" 阶段。此外他们还表示,对于这项特性,即便保证兼容性是最困难的工作之一,但依然会最大限度地向后兼容。

相关讨论:

Reddit:https://www.reddit.com/r/rust/comments/w9gi48/announcing_the_keyword_generics_initiative/

Lobsters:https://lobste.rs/s/hyd2sx/announcing_keyword_generics_initiative

相关链接:

https://blog.rust-lang.org/inside-rust/2022/07/27/keyword-generics.html

更多精彩



微软默默地给CURL捐赠一万美元,网友:财大气粗

20个开源的工业设计软件

C++之父评“替代品”Carbon:规范不足!



这里有最新开源资讯、软件更新、技术干货等内容
点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存