new和make分配在堆上还是栈上应该要看逃逸分析吧,make分配的内建类型可能会在函数外部使用,所以会分配到堆上,new创建的类型分配在堆上,如果函数返回后变量任然被外部使用,就会逃逸到堆上。