goalng中如何做到函数中的局部变量,可以在外部函数中正常使用?
golang的编译器会在编译时,对变量进行分析,如果在外部使用,会申请堆内存所以可以在外部函数使用,这个也叫逃逸分析。
在golang中即使使用new,申请的内存也不一定是在堆上面,逃逸分析机制会判断这个变量是否在函数之外使用过,如果未使用就在栈上面申请,避免过多申请堆,造成内存碎片。
goalng中如何做到函数中的局部变量,可以在外部函数中正常使用?
golang的编译器会在编译时,对变量进行分析,如果在外部使用,会申请堆内存所以可以在外部函数使用,这个也叫逃逸分析。
在golang中即使使用new,申请的内存也不一定是在堆上面,逃逸分析机制会判断这个变量是否在函数之外使用过,如果未使用就在栈上面申请,避免过多申请堆,造成内存碎片。