我有这样的结构:
struct TeddyBear {
mood: Option<Box<dyn Mood>>,
}“心情”是一个trait。现在有两种可能的情绪:“struct”和"Sleepy",它们实现了trait。我起草了一个操场范例这里。
我正在努力学习最好的方法来获得泰迪熊目前的情绪在不同的时间在程序中。
我所做的就是返回特定于每个心情的字符串值,但感觉有点不好受。值的enum可能也会起作用,但我必须记住每次添加新的情绪时都要添加。我想知道是否有一种直接使用“快乐”或“睡眠”的方法。
谢谢!
发布于 2022-01-22 21:15:23
你可以有一个枚举:
enum MoodKind {
Happy,
Sleepy,
}还有一种方法:
trait Mood {
fn mood_kind() -> MoodKind;
}但我必须记住,每次添加新的情绪时,我都要加进去。
为了避免每次都以正确的方式实现这一点,必须使用自定义派生属性。铁锈没有内置运行时反射。将这个答案作为指针引用。
这不是小事,所以要三思而后行。也许情绪的数量不是很大,你可以手动维持吗?
https://stackoverflow.com/questions/70816050
复制相似问题