var 和 type 一个结构的区别
在 go 语言中,结构体是用于组合数据的强大工具。而 var 和 type 在定义结构体时各有其用途。
var
关键字 var 用于声明变量,也可用于声明结构体。采用 var 声明结构体时,可以使用匿名结构体语法,如下所示:
var people struct { name string}
登录后复制
这种写法可以让你在没有定义明确类型的情况下快速创建结构体变量。它类似于 java/c# 中的匿名类型,在 go 语言中称为匿名结构体。
type
关键字 type 则用于定义类型,包括结构体类型。使用 type 声明结构体时,需要为其指定一个类型名称,如下所示:
type people struct { name string}
登录后复制
这个代码定义了一个名为 people 的结构体类型。之后,你可以使用该类型名称来声明结构体变量:
var people people
登录后复制
区别
匿名结构体(var 声明)和命名结构体(type 声明)之间的区别在于:
匿名结构体没有类型名称,只存在于声明它的作用域内。命名结构体具有类型名称,可以跨多个作用域使用。
示例
以下示例说明了两种写法的异同:
// 定义一个匿名结构体var people = struct{ name string }{name: "John"}// 定义一个命名结构体type Person struct{ name string }var p = Person{name: "Mary"}fmt.Println(people) // 输出: {John}fmt.Println(p) // 输出: {Mary}
登录后复制
在这个示例中,由于匿名结构体只存在于其声明的作用域内,因此在函数外部无法访问 people 变量。而命名结构体类型 person 可以跨多个作用域使用。
以上就是Go 语言中,用 var 和 type 定义结构体有什么区别?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2316186.html