2个不稳定版本
0.2.0 | 2023年9月3日 |
---|---|
0.1.0 | 2023年9月1日 |
第729个 过程宏
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块执行,通知用户。
文档
有关每个宏及其行为的详细信息,请参阅文档
贡献
欢迎贡献!请提交问题或提交拉取请求。
许可证
依赖项
~255–700KB
~17K SLoC