从Rust tutorial可以用struct定义类型
enum Shape {
Circle { center: Point, radius: f64 },
Rectangle { top_left: Point, bottom_right: Point }
}
和非struct/Tuples类型的枚举(感谢@ÖmerErden的正确命名)enum Shape {
Circle(Point, f64),
Rectangle(Point, Point)
}
据我所知,两者是相同的,在匹配中具有完全相同的用例,依此类推。但是struct one强制您使用命名属性,非struct强制您使用有序参数。我在使用或输出(性能,内存占用等)上还缺少其他差异吗?还是后来的结构只是结构的一个懒惰语法版本,在编译后具有确切的结果?
最佳答案
我只发现了两种明显的用法:
self.0
。 struct MyString(String);
.0
,.1
等语法更加清晰时,您不能使用命名字段(因为标识符不能以数字字符开头,尤其不能是数字字符串关于rust - 在枚举中需要元组变体的独特/特殊情况是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63437532/