为什么将匹配的枚举变体及其名称和类型不起作用?

dronte7

考虑以下示例:

pub enum DigitalWallet {
    WithMemo {
        currency: String,
        address: String,
        tag: String,
    },
    WithoutMemo {
        currency: String,
        address: String,
    },
}

impl<'a> DigitalWallet {
    fn getCurrency(self: &'a Self) -> &'a String {
        match self {
            DigitalWallet::WithMemo {
                currency: String, ..
            } => currency,
            DigitalWallet::WithoutMemo {
                currency: String, ..
            } => currency,
        }
    }
}

为什么会导致以下情况?

error[E0425]: cannot find value `currency` in this scope
  --> src/lib.rs:18:18
   |
18 |             } => currency,
   |                  ^^^^^^^^ not found in this scope

error[E0425]: cannot find value `currency` in this scope
  --> src/lib.rs:21:18
   |
21 |             } => currency,
   |                  ^^^^^^^^ not found in this scope
麦卡顿

您语法错误。类型永远不会在模式中重复。

字段模式的语法为field_name: binding_name(并且field_name: field_name可以简化为field_name):

struct Foo {
    foo: i32,
}

fn main() {
    let foo = Foo { foo: 42 };

    match foo {
        Foo {
            foo: local_name_for_that_foo,
        } => {
            println!("{}", local_name_for_that_foo);
        }
    }
}

永久链接到操场

因此,您需要

match self {
    DigitalWallet::WithMemo { currency, .. } => currency,
    DigitalWallet::WithoutMemo { currency, .. } => currency,
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么枚举名称属性不起作用?

来自分类Dev

将枚举与组合框列表匹配似乎不起作用

来自分类Dev

为什么〜=在枚举和字符串上不起作用?

来自分类Dev

为什么索引+匹配+最大值在周末(日期名称)不起作用

来自分类Dev

为什么名称类型的叶节点在 yang 模型中不起作用?

来自分类Dev

将`foreach`和`if`结合使用的Perl语法:它不起作用,即:为什么它不起作用?

来自分类Dev

为什么以下类型声明和/或实例化在Julia 1.0中不起作用?

来自分类Dev

避免在“枚举”中重复使用变体名称和类型

来自分类Dev

Java-为什么这种模式匹配不起作用?

来自分类Dev

为什么 AIML 模式匹配不起作用?

来自分类Dev

为什么二维随机游走的一维变体不起作用?

来自分类Dev

为什么本地名称解析不起作用?

来自分类Dev

为什么此haskell类型签名不起作用?

来自分类Dev

为什么ToList <Interface>对于值类型不起作用?

来自分类Dev

为什么第n个类型不起作用?

来自分类Dev

为什么我对用户def类型的转换不起作用?

来自分类Dev

为什么将输入和模型转换为 float16 不起作用?

来自分类Dev

为什么不起作用?

来自分类Dev

在Excel中,正是为什么EOMONTH()(及其他)在数组公式中不起作用?

来自分类Dev

为什么这个带有“this”的功能不起作用?关于“this”及其范围

来自分类Dev

为什么我的$ emit和$ broadcast示例不起作用?

来自分类Dev

为什么“ cc”和“ c ++”的Bash完成不起作用?

来自分类Dev

为什么键和值对向量不起作用?

来自分类Dev

为什么模糊和聚焦在Safari上不起作用?

来自分类Dev

为什么叠加的图片和徽标+文字不起作用?

来自分类Dev

keyCode和不赞成使用的-为什么不起作用?

来自分类Dev

为什么mongodump和mongorestore不起作用?

来自分类Dev

为什么@for循环在Razor和Blazor中不起作用?

来自分类Dev

为什么@for循环在Razor和Blazor中不起作用?

Related 相关文章

  1. 1

    为什么枚举名称属性不起作用?

  2. 2

    将枚举与组合框列表匹配似乎不起作用

  3. 3

    为什么〜=在枚举和字符串上不起作用?

  4. 4

    为什么索引+匹配+最大值在周末(日期名称)不起作用

  5. 5

    为什么名称类型的叶节点在 yang 模型中不起作用?

  6. 6

    将`foreach`和`if`结合使用的Perl语法:它不起作用,即:为什么它不起作用?

  7. 7

    为什么以下类型声明和/或实例化在Julia 1.0中不起作用?

  8. 8

    避免在“枚举”中重复使用变体名称和类型

  9. 9

    Java-为什么这种模式匹配不起作用?

  10. 10

    为什么 AIML 模式匹配不起作用?

  11. 11

    为什么二维随机游走的一维变体不起作用?

  12. 12

    为什么本地名称解析不起作用?

  13. 13

    为什么此haskell类型签名不起作用?

  14. 14

    为什么ToList <Interface>对于值类型不起作用?

  15. 15

    为什么第n个类型不起作用?

  16. 16

    为什么我对用户def类型的转换不起作用?

  17. 17

    为什么将输入和模型转换为 float16 不起作用?

  18. 18

    为什么不起作用?

  19. 19

    在Excel中,正是为什么EOMONTH()(及其他)在数组公式中不起作用?

  20. 20

    为什么这个带有“this”的功能不起作用?关于“this”及其范围

  21. 21

    为什么我的$ emit和$ broadcast示例不起作用?

  22. 22

    为什么“ cc”和“ c ++”的Bash完成不起作用?

  23. 23

    为什么键和值对向量不起作用?

  24. 24

    为什么模糊和聚焦在Safari上不起作用?

  25. 25

    为什么叠加的图片和徽标+文字不起作用?

  26. 26

    keyCode和不赞成使用的-为什么不起作用?

  27. 27

    为什么mongodump和mongorestore不起作用?

  28. 28

    为什么@for循环在Razor和Blazor中不起作用?

  29. 29

    为什么@for循环在Razor和Blazor中不起作用?

热门标签

归档