• golang之new函数


    另一个创建变量的方法是调用用内建的new函数。表达式new(T)将创建一个T类型的匿名变量,初始化为T类型的零值,然后返回变量地址,返回的指针类型为 *T 。

    p := new(int) // p, *int 类型, 指向匿名的 int 变量
    fmt.Println(*p) // "0"
    *p = 2 // 设置 int 匿名变量的值为 2
    fmt.Println(*p) // "2"

    用new创建变量和普通变量声明语句方式创建变量没有什么区别,除了不需要声明一个临时变量的名字外,我们还可以在表达式中使用new(T)。换言之,new函数类似是一种语法糖,而不是一个新的基础概念。

    下面的两个newInt函数有着相同的行为:

    func newInt() *int {
      return new(int)
    }
    func newInt() *int {
      var dummy int
      return &dummy
    }

    每次调用new函数都是返回一个新的变量的地址,因此下面两个地址是不同的:

    p := new(int)
    q := new(int)
    fmt.Println(p == q) // "false"
    人生就是要不断折腾
  • 相关阅读:
    视频遮挡问题
    calc兼容性
    javascript变量声明提升
    jquery插件
    prop和attr在 jquery的
    onclick防止冒泡和json对象放入
    git 入门
    去掉ie滚动条兼容性
    单页面应用程序(SPA)
    swiper轮播图插件
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/11863632.html
Copyright © 2020-2023  润新知