在这种情况下,我需要手动释放内存吗?
let mut s = String::new();
...somecode here...
s = String::new();
这是擦除字符串内容的最佳方法吗?
答案 0 :(得分:0)
在这种简单情况下,Rust将在不再需要时自动释放内存。
如果要将零长度的字符串分配给s
,则可以使用clear
函数:
s.clear();
这将保留字符串的当前容量(和分配)。您引用的替代方法
s = String::new();
不这样做。两种方法都有其用途,具体取决于情况。有时,保留大的字符串分配很浪费(如果字符串再也不会增长到这个大小了)。