gpt4 book ai didi

rust - 如何基于枚举从 impl 存储和访问?

转载 作者:行者123 更新时间:2023-11-29 08:23:35 25 4
gpt4 key购买 nike

我有以下基于枚举的实现。我不知道我现在应该如何存储和访问我的值。

这是实现:

pub enum Baz {
// My data structure has a string and a number
Foo(String),
Bar(u64),
}

impl Baz {
pub fn get(baz: Baz) -> String {
let mut result = "".to_string();
match baz {
Baz::Foo(v) => {},
Baz::Bar(v) => { result = v.to_string() },
}
result
}
pub fn new() {
// Do I even need new() for instance creation?!
println!("Hello World");
}
}

这是我访问它的方式:

mod bazbazbaz;
use bazbazbaz::baz;

fn main() {
let x: data::Baz;
x::Foo("mystring".to_string());
x::Bar(42);
x.get(Baz::Bar); // I expect "42" here as string
}

这只是一个语法错误,还是我误解了这个概念?

最佳答案

我认为您混淆了 struct 的概念与 enum 的概念.

以某种方式构造您的数据,而枚举提供枚举关于如何构造数据的选择。

struct Baz {
foo: String,
bar: u64
}

它包含一个String 一个u64

enum Baz {
Foo(String),
Bar(u64),
}

这包含一个 String u64

关于rust - 如何基于枚举从 impl 存储和访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49539321/

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