这个问题在这里已有答案:
在这种情况下,我是否需要手动释放内存:
let mut s = String::new();
...somecode here...
s = String::new();
并且它是擦除字符串内容的最佳方法吗?
在这种简单的情况下,当我们不再需要时,Rust会自动释放内存。
如果要为s
指定零长度字符串,可以使用clear
函数:
s.clear();
这样可以保留字符串的当前容量(和分配)。您引用的替代方案,
s = String::new();
不这样做。根据具体情况,这两种方法都有其用途。有时,保留大量的字符串分配是浪费的(如果字符串永远不会再增长到这个大小)。