首选的方法是获取结构域的引用?

时间:2019-07-24 13:17:02

标签: rust pattern-matching

从对结构的引用中获取对结构域的引用的所有方法让我不知所措。这些是我现在所知道的方式:

foo.bar

其中哪些是“首选方式”?我假设像{{1}}这样的字段访问是单个字段和模式匹配的首选,以便一次性获得多个字段,但是我不清楚我在上面列出的多种方式中的每种情况下应使用哪种方式。

1 个答案:

答案 0 :(得分:5)

没有理由避免直接访问

let bar1 = &foo.bar;

这更容易编写和阅读。您无需在这里进行模式匹配。

模式匹配是一个附加工具,它基本上解决了两种问题:

  • 将值分解为多个值,例如let (a, b) = c;
  • while letif letmatch臂中处于有条件(“可辩驳”)的状态

请参见All the places patterns can be used

正式禁止您的某些声明。 Clippy会警告您the ref ones