Go语言 之new( )函数

package main

import (
    "fmt"
)

func main() {
    var p *int
    p = new(int)
    fmt.Println(*p) //0
}

表达式new(T)将创建一个T类型的匿名变量,所做的是为T类型的新值分配并清零一块内存空间,然后将这块内存空间的地址作为结果返回,而这个结果就是指向这个新的T类型值的指针值,返回的指针类型为*T。

new创建的内存空间位于heap上,空间的默认值为数据类型默认值。如:new(int) 则 *p为0,new(bool) 则 *p为false。

我们只需使用new()函数,无需担心其内存的生命周期或怎样将其删除,因为Go语言的内存管理系统会帮我们打理一切。

posted @ 2019-07-02 11:01  样子2018  阅读(9033)  评论(0编辑  收藏  举报