宏是 Rust 程序员工具箱中的一个强大工具,要想对它有个简单认知,可以看看宏例子。让我们写一个!
你可以用vec![]
内联宏,生产一个任意长度的Vec
。然而,Rust 并没有生产HashMap
的内联宏hashmap!()
。
例如,您的库的用户可能会编写hashmap!('a' => 3, 'b' => 11, 'z' => 32)
。这应该扩展到以下代码:
{
let mut hm = HashMap::new();
hm.insert('a', 3);
hm.insert('b', 11);
hm.insert('z', 32);
hm
}
注意maplit
箱子时提供了一个很好地解决这个问题的宏。但请执行您自己的解决方案,而不是使用这个箱子,请在查看箱子源代码之前,自己尝试下。
Peter Goodspeed-Niklaus