首页 > 其他分享 >Go 快速入门指南 - 结构体

Go 快速入门指南 - 结构体

时间:2022-12-24 18:36:19浏览次数:41  
标签:指南 入门 age tom Jerry Tom Go fmt name

概述

​结构体​​​ 是将零个或多个字段 (变量) 组合在一起的复合数据类型,类似于面向对象语言中的 ​​对象​​。

结构体以及其字段都使用 可见性 规则。

语法规则

type 结构体名称 struct {
字段1名称 字段1数据类型
字段2名称 字段2数据类型
...
}

例子

空结构体

var s struct{}

没有长度,也不携带任何字段信息。

声明及初始化

package main

import "fmt"

type person struct {
name string
age int16
}

func main() {
tom := person{ // 使用字面量初始化
name: "Tom",
age: 6,
}

fmt.Printf("Tom's name is %s, age is %d\n", tom.name, tom.age)

jerry := new(person) // 使用 new 关键字创建
jerry.name = "Jerry"
jerry.age = 8

fmt.Printf("Jerry's name is %s, age is %d\n", jerry.name, jerry.age)
}

// $ go run main.go
// 输出如下
/**
Tom's name is Tom, age is 6
Jerry's name is Jerry, age is 8
*/

结构体指针

和指针变量一样,在结构体中,也可以通过 ​​结构体​​ 指针直接修改结构体字段的值。

package main

import "fmt"

type person struct {
name string
age int16
}

func main() {
tom := person{
name: "Tom",
age: 6,
}

fmt.Printf("Tom's name is %s, age is %d\n", tom.name, tom.age)

var tomPtr *person
tomPtr = &tom
tomPtr.name = "Jerry"
tomPtr.age = 8

fmt.Printf("Tom's name is %s, age is %d\n", tom.name, tom.age)
}

// $ go run main.go
// 输出如下
/**
Tom's name is Tom, age is 6
Tom's name is Jerry, age is 8
*/

Go 快速入门指南 - 结构体_Go

标签:指南,入门,age,tom,Jerry,Tom,Go,fmt,name
From: https://blog.51cto.com/u_15915979/5967432

相关文章

  • Go 快速入门指南 - 嵌套结构体
    概述Go支持将多个结构体通过嵌套的方式,组成一个大的结构体,降低了单个结构体复杂度,同时提高了结构体之间组合的灵活性。例子为了省略篇幅,本小节只使用 ​​字面量​​​ ......
  • Go 快速入门指南 - 函数
    概述​​函数​​ 是将一个或者一类问题包装为一个代码块,可以被多次调用,提高代码重用性。Go函数中声明、定义、参数、返回值这些基础概念,和其他编程语言中的一致,这里不再......
  • Go 快速入门指南 - init 函数
    概述​​init()函数​​ 是一个特殊的函数,一般称为初始化函数,不能被调用。 在每个文件里面,当程序启动或者文件被作为包引用的时候,init()函数就会自动执行,一般用来做一......
  • Go 快速入门指南 - 接口和方法
    接口Go接口是隐式实现。 对于一个数据类型,无需声明它实现了哪些接口,只需要实现接口必需的方法即可。当然了,存在一个小问题就是:我们可能无意间实现了某个接口:),所以 ​......
  • Go 快速入门指南 - 判断是否实现接口
    判断是否实现接口Go里面没有 ​​implements​​ 关键字来判断一个结构体(对象)是否实现了某个接口, 要实现类似的功能,需要用到 ​​类型断言​​。类型断言//判断......
  • Go 快速入门指南 - 零值和错误
    零值当一个变量使用 ​​var​​​ 进行声明后并未进行初始化(变量后面没有赋值符 ​​=​​)操作,会默认分配一个零值(zerovalue)。不同类型对应的零值类型零值boolf......
  • Go 快速入门指南 - 类型比较
    概述​​比较运算符​​​ 用来比较两个操作数并返回一个 ​​bool​​ 值,常见的比较运算符:==等于!=不等于<小于<=小于等于>大于>=大于等于......
  • Go 快速入门指南 - goroutine
    概述goroutine是Go程序并发执行的实体,对于初学者来讲,可以简单地将 ​​goroutine​​​ 理解为一个 ​​超轻量的线程​​。当一个程序启动时,只有一个goroutine调用......
  • Go 快速入门指南 - 缓冲通道和非缓冲通道
    概述建议先阅读 goroutine 小节。Go箴言:不要通过共享内存来通信,而要通过通信来共享内存。​​goroutine​​​ 是Go程序并发执行的实体,​​channel(通道)​​​ ......
  • Go 快速入门指南 - 通道方向和关闭通道
    概述建议先阅读 阻塞通道 和 非阻塞通道 小节。在前面的两个小节中,为了最小化代码达到演示效果,省略了 ​​关闭通道​​ 的步骤,正确的做法应该是在通道使用完成后关......