Go 语言中 var 和 type 创建结构的区别是什么?
在 go 语言中,我们经常会看到两种创建结构的方式:使用 var 和 type 关键字。新手可能会疑惑,这两种写法有什么区别呢?
首先,我们来看使用 var 关键字创建结构的例子:
var people struct { name string age int }
这种写法类似于其他编程语言中的匿名类型。它创建一个匿名的结构类型,其中包含指定的字段。与定义命名结构类型不同,匿名结构类型不需要有名称,它与变量一起声明。
而使用 type 关键字创建结构则需要为结构类型指定一个名称:
type people struct { name string age int }
然后,我们就可以使用这个结构类型声明变量:
var people People
本质上,使用 type 关键字可以定义一个可重复使用的结构类型,而使用 var 关键字可以创建一个匿名结构变量,只用在当前作用域内。
此外,匿名结构类型还可以嵌套在其他结构或接口中,这在定义复杂的数据结构时很有用。
因此,当我们需要定义一个临时使用的结构时,可以使用 var 关键字创建匿名结构。而当需要定义一个可重复使用的结构类型时,则应该使用 type 关键字。