我在枚举上有一个匹配块,并且其中一个匹配案例包含同一枚举上的另一个匹配块。像这样的事情:
fn foo(&mut self, scenario: &mut Scenario) -> Result<&mut Self>
{
match self {
Scenario::Step { attributes, .. } => {
match scenario {
Scenario::Step { attributes,.. } => {
Run Code Online (Sandbox Code Playgroud)
有什么方法可以访问attributes
内部匹配中的两个字段吗?我认为可以从内部匹配块返回该字段,但是可以以更美观的方式处理它吗?
您可以像这样重命名匹配的变量:
fn foo(&mut self, scenario: &mut Scenario) -> Result<&mut Self>
{
match self {
Scenario::Step { attributes: attrs1, .. } => {
match scenario {
Scenario::Step { attributes: attrs2,.. } => {
// do something with attrs1 and attrs2
Run Code Online (Sandbox Code Playgroud)
更好的是,您可以在元组中匹配它们:
fn foo(&mut self, scenario: &mut Scenario) -> Result<&mut Self>
{
match (self, scenario) {
(Scenario::Step { attributes: attrs1, .. }, Scenario::Step { attributes: attrs2,.. }) => {
// do something with attrs1 and attrs2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1305 次 |
最近记录: |