为什么size_of :: <&T>()== size_of :: <usize>()取决于T是否定尺寸?

时间:2019-01-11 17:40:00

标签: rust

The docs for size_of说以下话:

  

如果将T调整为大小,则所有这些类型[指针类型,例如&T的大小都与usize相同。

为什么要预选赛?不管所指向类型的任何属性如何,指针都没有确定的大小吗?

1 个答案:

答案 0 :(得分:5)

未调整大小的对象引用除了指向对象的指针之外,还具有其他数据。对于切片引用( GRANT SELECT ON iga.* TO 'iga'@'ip-10-11-2-150.aws.example.hostname' ),它们包含一个大小,以指示此切片多长时间。对于特征(特征对象)的引用,它们包含指向vtable的指针,以启用动态调度。