Enumeration Variant expressions
枚举变体表达式
commit: 1a3615102993e9f017a44b903ff2277a38a171a8
本章译文最后维护日期:2020-11-12
句法
EnumerationVariantExpression :
EnumExprStruct
| EnumExprTuple
| EnumExprFieldlessEnumExprStruct :
PathInExpression{
EnumExprFields?}
EnumExprFields :
EnumExprField (,
EnumExprField)*,
?EnumExprField :
IDENTIFIER
| (IDENTIFIER | TUPLE_INDEX):
ExpressionEnumExprTuple :
PathInExpression(
( Expression (,
Expression)*,
? )?
)
EnumExprFieldless : PathInExpression
枚举变体的构造与结构体(struct
)的构造方法类似,只是使用枚举变体的路径来替代结构体的路径:
# enum Message {
# Quit,
# WriteString(String),
# Move { x: i32, y: i32 },
# }
let q = Message::Quit;
let w = Message::WriteString("Some string".to_string());
let m = Message::Move { x: 50, y: 200 };
枚举变体表达式具有与结构体表达式相同的句法、行为和限制,除了它不支持使用 ..
句法。