gpt4 book ai didi

rust - 重命名匹配中的枚举字段 (rust)

转载 作者:行者123 更新时间:2023-12-01 23:18:57 25 4
gpt4 key购买 nike

我在枚举上有一个匹配 block ,其中一个匹配案例包含同一枚举上的另一个匹配 block 。像这样:

fn foo(&mut self, scenario: &mut Scenario) -> Result<&mut Self>
{
match self {
Scenario::Step { attributes, .. } => {
match scenario {
Scenario::Step { attributes,.. } => {

有没有办法访问内部匹配项中的两个 attributes 字段?我看到了只从内部匹配 block 返回该字段的可能性,但它能以更美观的方式处理吗?

最佳答案

您可以像这样重命名匹配的变量:

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

更好的是,您可以在元组中匹配它们:

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

关于rust - 重命名匹配中的枚举字段 (rust),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68375662/

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