内容简介:版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wd2014610/article/details/80403044
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wd2014610/article/details/80403044
结构体
一个结构体( struct
)就是一个字段的集合。
(而 type 的含义跟其字面意思相符。)
下面来写一个简单的例子:
package main import "fmt" /** * 一个结构体就是一个字段的集合 */ type Vertex struct { X int Y float64 } func main() { fmt.Println(Vertex{1,2.31231}) }
输出结果:
{1 2.31231}
一、结构体字段
结构体字段使用点号来访问。
package main import "fmt" type Vertex2 struct { X int Y int } func main() { //在这里给结构体赋值,x=6,y=3 v := Vertex2{6, 3} //这边输出的结果是6,3 fmt.Println(v.X, v.Y) //这边从新给结构体中的X赋值,X=7 v.X = 7 //输出X=7 fmt.Println(v.X) }
二、结构体指针
结构体字段可以通过结构体指针来访问。
如果我们有一个指向结构体的指针 p,那么可以通过 (*p).X 来访问其字段 X。不过这么写太啰嗦了,所以语言也允许我们使用隐式间接引用,直接写 p.X 就可以。
package main import "fmt" type Vertex3 struct { X int Y int } func main() { //给结构体赋值,X=1,Y=3 v := Vertex3{1, 3} //这个是输出实际的结构体的值,所以{1 3} fmt.Println(v) //将结构体给p做引用,p是一个指向结构体的指针 p := &v //输出结果有引用的结果,有一个&,&{1 3} fmt.Println(p) //给结构体中的X赋值为1e9,这个表示1后面跟着9个0 p.X = 1e9 //输出结果{1000000000 3} fmt.Println(v) }
输出结果:
{1 3} &{1 3} {1000000000 3}
三、结构体文法
结构体文法通过直接列出字段的值来新分配一个结构体。
使用 Name: 语法可以仅列出部分字段。(字段名的顺序无关。)
特殊的前缀 & 返回一个指向结构体的指针。
package main import "fmt" //定义一个结构体 type Vertex4 struct { //在结构体中定义两个变量 X, Y int } var ( //给X、Y都赋值 v1 = Vertex4{1, 2} // has type Vertex //给X赋值为1,Y未赋值,默认为0 v2 = Vertex4{X: 1} // Y:0 is implicit //X、Y都不赋值,默认都为0 v3 = Vertex4{} // X:0 and Y:0 //指针的方式去赋值 p = &Vertex4{1, 2} // has type *Vertex ) func main() { fmt.Println(v1, v2, v3, p) }
好了,这一次的结构体文法就是这样子了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Scala 类型层次结构
- Scala 类型层次结构
- InnoDB 类型MySql恢复表结构与数据
- golang学习笔记2:基本结构与数据类型
- DevOps 团队结构类型汇总:总有一款适合你
- MySQL 索引的原理与应用:索引类型,存储结构与锁
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
How to Design Programs, 2nd Edition
Matthias Felleisen、Robert Bruce Findler、Matthew Flatt、Shriram Krishnamurthi / MIT Press / 2018-5-4 / USD 57.00
A completely revised edition, offering new design recipes for interactive programs and support for images as plain values, testing, event-driven programming, and even distributed programming. This ......一起来看看 《How to Design Programs, 2nd Edition》 这本书的介绍吧!