【发布时间】:2020-08-16 13:34:56
【问题描述】:
来自Rust tutorial,类型可以用struct来定义
enum Shape {
Circle { center: Point, radius: f64 },
Rectangle { top_left: Point, bottom_right: Point }
}
和非结构/元组类型枚举(感谢@ÖmerErden 提供正确的命名)
enum Shape {
Circle(Point, f64),
Rectangle(Point, Point)
}
据我所知,两者是相同的,在匹配中具有完全相同的用例等。但是结构之一强制您使用命名属性,而非结构强制您使用有序参数。
在使用或输出(性能、内存占用等)方面,我还缺少什么其他区别吗?还是后者只是结构的惰性语法版本,编译后具有确切的结果?
【问题讨论】:
-
这是元组 =>
let x = (3, 5, 4),这是元组结构 =>struct Circle(Point, f64)并且 Rust 中没有类 -
您链接到的“Rust 教程”来自 Rust 0.9...许多东西在 0.9 和 1.0 之间发生了变化(在语法和标准库中),所以你会发现一些过时的东西在这。我建议您阅读book,如果您还没有阅读的话。
-
两种表单在运行时应该没有明显的差异。但这并不特定于枚举,这同样适用于一般的元组结构与普通结构。
标签: rust