Skip to content

Latest commit

 

History

History
30 lines (21 loc) · 1.17 KB

README.zh.md

File metadata and controls

30 lines (21 loc) · 1.17 KB

宏是 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