如何用“var”声明一个新的结构实例不同于使用“新”在Go? [英] How is declaring a new struct instance with "var" different from using "new" in Go?

查看:73
本文介绍了如何用“var”声明一个新的结构实例不同于使用“新”在Go?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码创建了一个可用的结构实例, Car 。这与使用 new(Car)



有什么不同?示例:

  type Car struct {
make string
}

func Main(){
var car Car ; //这与car:= new(Car)有什么不同?

car.make =Honda
}


解决方案一个定义了一个Car变量,另一个返回一个Car指针。

Car //定义变量车是Car
car2:= new(Car)//定义变量car2是一个* Car并指定一个Car来支持它

car:= new(Car)可以相对于 var car Car



  var x Car 
car:=& x


The following code creates a usable instance of the struct, Car. How is this different than using new(Car)?

Example:

type Car struct {
  make string
}

func Main() {
  var car Car; // how is this different than "car := new(Car)"?

  car.make = "Honda"
}

解决方案

One defines a Car variable, the other returns a pointer to a Car.

var car Car      // defines variable car is a Car
car2 := new(Car) // defines variable car2 is a *Car and assigns a Car to back it

car := new(Car) can be implemented in relation to var car Car like this:

var x Car
car := &x

这篇关于如何用“var”声明一个新的结构实例不同于使用“新”在Go?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆