没有垃圾收集或引用计数。V在编译期间清理它可以做的事情。例如:
fn draw_text(s string, x, y int) {
...
}
fn draw_scene() {
...
draw_text('hello name1', 10, 10)
draw_text('helloname2', 100, 10)
draw_text(strings.repeat('X', 10000), 10, 50)
...
}
字符串不会转义draw_text
,因此在函数退出时会清除它们。
实际上,前两次调用根本不会产生任何分配。这两个字符串很小,V将为它们使用预分配的缓冲区。
对于更复杂的情况,需要手动内存管理。这将很快修复。
V将在运行时检测内存泄漏并报告它们。要清理(例如)数组,请使用free()
方法:
numbers := [0; 1000000]
...
numbers.free()