chapter on unsized types in the first edition book说:
只有 struct 中的最后一个字段可以具有动态大小的类型;其他字段不能.Enum变体不能具有动态大小的类型作为数据.
在这里我无法理解这种限制背后的原因.最后一个领域有什么不同?
chapter on unsized types in the first edition book说:
只有 struct 中的最后一个字段可以具有动态大小的类型;其他字段不能.Enum变体不能具有动态大小的类型作为数据.
在这里我无法理解这种限制背后的原因.最后一个领域有什么不同?
在Rust中,由于内存布局未指定,因此动态大小类型(DST)字段位于最后的限制在技术上并不必要.话虽如此,编译器必须知道除一个字段之外的所有字段的大小,并且在内存中动态大小的字段必须是最后的,否则它无法静态计算所有字段的偏差.
因此,要求DST位于代码中的最后与所需的内存布局一致.