簡體   English   中英

枚舉中的 rust 名稱字段

[英]rust name fields in enum

是否可以命名或以其他方式描述 rust 中的enum字段?
讓我們看看這段代碼

enum Move {
    Capture(Piece, Piece, (i8, i8), (i8, i8)),
    ...
}

每個值的含義可能並不明顯,在這種情況下,第一塊是我的塊,它捕獲了第二塊,從而從第一個 position ( (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),
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM