如何确定Rust中的new()在堆栈或堆上分配



是否有一种方法(除了查看实现和文档)来确定new()在rust中何时分配堆栈或堆?

理想情况下,我正在寻找一种方法来确定这在写源代码时一目了然。例如,可以添加trait或参数来限制是否可以进行堆分配。

在Rust中命名为new()的函数无论如何都不是特殊的。因此,不,您不能轻易确定这样的函数返回的内容是否拥有任何堆分配的数据。即使对于std::default::Defaulttrait实现,也没有限制或约定阻止default()方法进行堆分配,也通常没有文档记录。

最新更新