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