gpt4 book ai didi

struct - 更新类结构枚举变体中的字段

转载 作者:行者123 更新时间:2023-11-29 07:54:39 25 4
gpt4 key购买 nike

我可以对单个结构使用结构更新语法,但无法将它与类似结构的枚举变体一起使用。我也不能使用点语法从类似结构的枚举变体更新字段。

例如:

enum Enum {
Struct {
field1: i32,
field2: i32,
}
}

fn main() {
let mut my_enum = Enum::Struct {
field1: 1,
field2: 2,
};

my_enum = Enum::Struct {
field1: 1,
.. my_enum
};

my_enum = match my_enum {
strct@Enum::Struct { field1, field2 } => Enum::Struct {
field1: 1,
.. strct
},
};
}

两种方式都给我一个错误:

functional record update syntax requires a struct

这段代码:

my_enum.field1 = 3;

给我以下错误:

attempted access of field `field1` on type `Enum`, but no field with that name was found

如何从类似结构的枚举变体更新字段?

最佳答案

这是一种方法:

match my_enum {
Enum::Struct { ref mut field1, .. } => {
*field1 = 3;
}
}

关于struct - 更新类结构枚举变体中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com