是否可以命名或以其他方式描述 Rust 中
enum
的字段?
让我们看一下这段代码:
enum Move {
Capture(Piece, Piece, (i8, i8), (i8, i8)),
...
}
这些值的含义可能并不明显,在这种情况下,第一块是我的块,它捕获了第二块,从而从第一个位置 (
(i8, i8)
) 移动到第二个位置。
理想的情况是这样的:
enum Move {
Capture(piece: Piece, captured: Piece, from: (i8, i8), to: (i8, i8)),
...
}
遗憾的是这不起作用。
有什么方法可以让我的
enum
更具描述性(除了评论之外)?
您可以使用嵌入式结构,例如:
enum Move {
Capture{piece: Piece, captured: Piece, from: (i8, i8), to: (i8, i8)},
...
}
或者更好的是,将它们带到外面,您可以在它们之上实现方法,然后将其嵌入到枚举中:
struct Capture{piece: Piece, captured: Piece, from: (i8, i8), to: (i8, i8)};
impl Capture {
...
}
enum Move {
Capture(Capture),
...
}