2个不稳定版本

0.2.0 2023年9月3日
0.1.0 2023年9月1日

729过程宏

MIT 许可证

10KB
116

for-else

Rust的Python风格for-else构造

概述

for-else库引入了一个过程宏for_!,该宏扩展了Rust中标准for循环的功能。这种增强允许直接在循环中添加else块,只有当循环在未遇到break语句的情况下完成时才会执行,这与Python的for-else构造非常相似。

用法

首先,将依赖项添加到您的Cargo.toml中

cargo add for-else

然后,在您的代码中使用这些宏

use for_else::for_;

// not the best way to test primality, just for demonstration
fn is_prime(n: u32) -> bool {
    if n <= 1 {
        return false;
    }
    for i in 2..n {
        if n % i == 0 {
            return false;
        }
    }
    true
}

for_! { n in 2100..=2110 {
    if is_prime(n) {
        println!("Found a prime number: {}", n);
        break;
    }
} else {
    println!("No prime numbers found in the range.");
}}

在这个例子中,程序在[2100, 2110]范围内寻找第一个素数。如果找到素数,则打印该数字。如果没有找到素数,则for_!宏内的else块执行,通知用户。

文档

有关每个宏及其行为的详细信息,请参阅文档

贡献

欢迎贡献!请提交问题或提交拉取请求。

许可证

MIT

依赖项

~255–700KB
~17K SLoC