Golang结构体怎么定义_struct语法基础-Golang

Go中结构体必须用type显式定义,不可内联;字段导出性由首字母大小写决定,标签不影响可见性;初始化推荐字段名赋值方式;嵌入是组合而非继承;struct tag须用反引号、空格分隔、双引号包裹值。

结构体必须用 type 显式定义,不能内联

Go 没有“匿名结构体变量声明”这回事。你不能写 var u {Name string} 或 func f(v {id int})——编译器会直接报错:expected type, found '{'。

必须先用 type 声明一个命名类型,再使用:

type User struct {
    ID   int    `json:"id"`
    Name string `json:"name"`
    email string `json:"email"` // 小写 → 仅本包可访问
}

注意:字段名首字母大小写决定导出性,不是标签(json:)决定的。哪怕加了 json:"email",email 字段在其他包里依然不可见、不会被 json.Marshal 序列化。

初始化要选对方式:字段名赋值是唯一安全选择

顺序初始化(User{1, "Tom"})看着短,但极其危险:

  • 字段增删改序后,代码 silently 错配(比如把 Age 插在中间,所有旧初始化全乱)
  • 无法跳过零值字段(如只设 ID 不设 Name,就只能靠字段名方式)

推荐且应强制使用的写法:

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Golang结构体怎么定义_struct语法基础-Golang
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3998983+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1391+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 3998983+
  • 本周更新: 0+
  • 最后更新: 2026-03-16