• 注册
  • 内存管理Memory management

    没有垃圾收集或引用计数。V在编译期间清理它可以做的事情。例如:

    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()
    
  • 单栏布局 侧栏位置: