我有这样的代码:
enum Packet {
Quit,
Message {
text: String,
time: i32,
is_admin: bool,
},
}
这样做很方便,但我不喜欢嵌套结构体。想象一下,如果我需要在这个枚举中添加更多的项,那么Packet定义就会变得太大了。 那么,有没有办法将Message结构体移出来,并在Packet结构体的定义中只写它的名称呢? 我考虑过这样做:
struct ChatMessage {
text: String,
time: i32,
is_admin: bool,
}
enum Packet {
Quit,
Message(ChatMessage),
}
< p > (顺便问一下,我可以将结构体命名为Packet中的项(struct Message
,Message(Message)
)吗?)
但是这样我就必须做
let msg = message.0
或类似的事情。如果这是唯一的解决方案 - 我可以接受,但如果有更简洁的解决方案,我会很高兴。