Rust:String的内存释放

时间:2019-03-31 08:32:58

标签: memory memory-management rust dealloc

在这种情况下,我需要手动释放内存吗?

let mut s = String::new();
...somecode here...
s = String::new();

这是擦除字符串内容的最佳方法吗?

1 个答案:

答案 0 :(得分:0)

在这种简单情况下,Rust将在不再需要时自动释放内存。

如果要将零长度的字符串分配给s,则可以使用clear函数:

s.clear();

这将保留字符串的当前容量(和分配)。您引用的替代方法

s = String::new();

不这样做。两种方法都有其用途,具体取决于情况。有时,保留大的字符串分配很浪费(如果字符串再也不会增长到这个大小了)。