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