美文网首页我爱编程
golang 内置函数new() 和struct{} 初始化的区

golang 内置函数new() 和struct{} 初始化的区

作者: ebayboy | 来源:发表于2018-06-20 18:10 被阅读0次

    golang 内置函数new() 和struct{} 初始化的区别

    happinessaflower·2015-06-17 20:03:41· 13036 次点击 ·预计阅读时间 1 分钟·大约1分钟之前开始浏览

    这是一个创建于2015-06-17 20:03:41的文章,其中的信息可能已经有所发展或是发生改变。

    new()

    这是一个用来分配内存的内置函数,它的第一个参数是一个类型,不是一个值,它的返回值是一个指向新分配的 t 类型的零值的指针。

    在golang的代码定义如下:

    funcnew(tType) *Type

    strut{}

    直接使用struct{} 来初始化strut时,返回的是一个struct类型的值,而不是指针两者是不一样的

    两者对比代码如下:

    typeStudentstruct{    idintnamestring}funcmain(){vars_1 *Student =new(Student)    s_1.id = 100s_1.name ="cat"vars_2 Student = Student{id:1,name:"tom"}    fmt.Println(s_1,s_2)}

    输出结果:

    &{100 cat} {1 tom}

    从上面代码的声明和打印的结果中就可以看出 s_1 的类型为指针,s_2 为一个Student类型

    相关文章

      网友评论

        本文标题:golang 内置函数new() 和struct{} 初始化的区

        本文链接:https://www.haomeiwen.com/subject/odwxyftx.html