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()