类型别名和元组结构之间有什么区别?

问题描述 投票:3回答:1

有什么区别

type CMoves = Vec<Move>;

struct CMoves(Vec<Move>);

我知道我可以用第二个实现特征,但我不能用第一个特征,因为Vec是在我的箱子之外定义的。还有其他差异,例如内存表示吗?

struct types rust
1个回答
1
投票

类型别名就是别名。纯语法糖,与语义无关。对于所有意图和目的,您可以将所有别名替换为别名。

另一方面,元组结构是一个完全独立的类型,所有这些都需要:

  • 你定义它的不变量,
  • 你定义它实现了哪些功能,
  • 你定义它实现了哪些特征。

因此,这两者并不相同。

© www.soinside.com 2019 - 2024. All rights reserved.