例如,想象一下一个理论上的
我知道if-let-chains即将到来,所以这个问题并非特指
lets!
宏,它会像这样编写:if lets![Some(x) = x && Some(y) = y] {
...
}
这将扩展为类似于:
if let Some(x) = x {
if let Some(y) = y {
...
}
}
我知道if-let-chains即将到来,所以这个问题并非特指
let
链。相反,它更多地涉及提供最终不具备卫生性的宏,因此,在宏扩展之后应该仅解析生成的代码--例如,想象一下宏填写if
条件的一部分,并影响扩展后代码的解析方式。
在Rust中是否可能实现这样的东西?
if let (Some(x), Some(y)) = (x, y) {
是一种选项。 - loganfsmythif let
通过&&
连接的情况,那么这是RFC的一部分,目前在Rust中还不稳定。它即将到来,但除非你愿意使用夜间版本,否则它还没有到达。 - Silvio Mayolo