11 个版本 (7 个重大变更)
0.8.0 | 2024 年 5 月 11 日 |
---|---|
0.7.0 | 2024 年 3 月 16 日 |
0.6.0 | 2024 年 3 月 16 日 |
0.5.0 | 2024 年 3 月 16 日 |
0.1.3 | 2022 年 5 月 25 日 |
#393 在 开发工具
每月 <1,896 下载
在 93 个 Crates 中使用(直接使用 2 个)
17KB
410 行
模块 :: for_each
为列表中的每个元素应用宏。
宏 $Callback
会为传递的列表中的每个元素调用,可选地通过第一个参数传递前缀 $Prefix
和作为最后一个参数传递后缀 $Postfix
。宏可以以函数调用方式或映射调用方式调用。前缀和后缀只能以映射调用方式传递。在映射调用方式中,在传递宏路径后,使用关键字 where
和选项,格式为: @KEY Value
。
在某些情况下,可以不使用回调宏而生成相同的代码,只需使用前缀和后缀。这就是为什么 $Callback
也是可选的。要调用 for_each
而不使用回调,使用映射调用方式,省略回调路径和关键字 where
。
基本用例 :: 函数式调用
为列表中的每个元素应用宏。
宏 for_each
可以以函数式方式或映射方式调用。将应用于元素的宏名称作为第一个参数传递,以及宏名称之后的元素。使用逗号作为分隔符。
use for_each::for_each;
for_each!( dbg, "a", "b", "c" );
// generates
dbg!( "a" );
dbg!( "b" );
dbg!( "c" );
基本用例 :: 映射式调用
宏 for_each
可以以函数方式或映射方式调用。使用键 @Prefix @Postfix @Each 将选项作为映射的条目传递。选项 @Prefix 和 @Postfix 是可选的,它们的条目可以省略,但 @Each 条目是必需的。选项的顺序应该是 @Prefix, @Postfix, @Each。
use for_each::for_each;
for_each!
{
dbg where
@Prefix { "prefix".to_string() + }
@Postfix { + "postfix" }
@Each "a" "b" "c"
};
它生成
// generated
dbg!( "prefix".to_string() + "a" + "postfix" );
dbg!( "prefix".to_string() + "b" + "postfix" );
dbg!( "prefix".to_string() + "c" + "postfix" );
基本用法 :: 多于单个标记
前缀和后缀都必须是标记树(tt
)。但如果你需要更复杂的内容,请将其放入花括号中 { ... }
。宏 for_each
将移除最外层花括号。如果前缀/后缀是单个标记,则花括号是可选的。
use for_each::for_each;
for_each!
{
dbg where
@Prefix { "prefix".to_string() + }
@Postfix { + "postfix" }
@Each { "a" + "1" } { "b" + "2" } { "c" + "3" }
};
// generates
dbg!( "prefix".to_string() + "a" + "1" + "postfix" );
dbg!( "prefix".to_string() + "b" + "2" + "postfix" );
dbg!( "prefix".to_string() + "c" + "3" + "postfix" );
基本用法 :: 无回调
回调宏是可选的。使用映射调用方式,并通过关键字 where
省略回调宏的路径来调用 for_each
而不使用回调。
use for_each::for_each;
for_each!
{
@Prefix { dbg! }
@Each ( "a" ) ( "b" ) ( "c" )
};
// generates
dbg!( "a" );
dbg!( "b" );
dbg!( "c" );
添加到您的项目中
cargo add for_each
从存储库中试用
git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/for_each_trivial
cargo run
>