Go 学习小册:go.jun.one
Github
  • 首页
  • Go 面试题
    • Untitled
    • 数组与切片有什么异同
    • 41-50
    • 4-5月
    • Go 进阶实战 100 题
    • Go 并发编程
  • 跟着例子学习Go
    • 基础部分
      • 12. 函数
      • 13. 多返回值函数
      • 14.可变参函数
      • 15. 闭包
  • 我的社区贡献和开源项目
  • Struct 结构体
    • 自定义类型
    • 结构体
    • 匿名结构体
    • 接口 interface
  • gin
    • Gin 项目初始化
  • 并发
    • 并发安全和锁
    • 一文搞定 Go 并发的实现原理:goroutine
  • 常用代码块
    • gerr
  • Go Web 开发进阶
    • MySQL 的连接和初始化
    • MySQL Register 源码解读
    • Go 原生操作 MySQL CRUD
  • go-redis的基本使用
由 GitBook 提供支持
在本页

这有帮助吗?

在GitHub上编辑
  1. Struct 结构体

结构体

Go语言中的基础数据类型可以表示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型,就无法满足需求了。

Go语言提供了一种自定义数据类型:结构体 struct ,可以封装多个基本数据类型。

Go语言中通过struct来实现面向对象。

结构体的定义

使用 type 和 struct 关键字来定义结构体:

type 类型名 struct {
    字段名 字段类型
    字段名 字段类型
    …
}

例如我们定义一个 Person 结构体。同样类型的字段可以写在一行。

type person1 struct {
	name, city string
	age        int8
}

结构体的基本使用

package main

import "fmt"

// 结构体

type person struct {
	name, gender string
	age          int
	hobby        []string
}

func main() {
	// 声明一个person类型的变量p
	var p person

	// 通过字段赋值
	p.name = "bingo"
	p.age = 9000
	p.gender = "男"
	p.hobby = []string{"🏀", "⚽️", "双色球"}
	fmt.Println(p)

	// 访问变量p的字段
	fmt.Printf("%T\n", p)
	fmt.Printf(p.name)
}
上一页自定义类型下一页匿名结构体

最后更新于3年前

这有帮助吗?