内存管理(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()