内容简介:版权声明:本文为博主原创文章,未经博主允许不得转载。 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)
}
好了,这一次的结构体文法就是这样子了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Black Box Society
Frank Pasquale / Harvard University Press / 2015-1-5 / USD 35.00
Every day, corporations are connecting the dots about our personal behavior—silently scrutinizing clues left behind by our work habits and Internet use. The data compiled and portraits created are inc......一起来看看 《The Black Box Society》 这本书的介绍吧!
RGB HSV 转换
RGB HSV 互转工具
HEX HSV 转换工具
HEX HSV 互换工具