package main
import "fmt"
/*
* 结构体是由一系列具有一组相同或不同数据构成的数据集合,表达一个整体概念。
* 结构体定义:
type struct_variable_type struct {
member definition
member definition
...
member definition
}
* 声明与初始化:
* variable_name := structure_variable_type {value1, value2...valuen}
* 或
* variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}
*/
// 定义结构体:点(有x,y 两个坐标组成)
type Point struct {
x int
y int
}
// 定义结构体:线(由两个点组成)
type Line struct {
begin Point
end Point
}
// 显示点信息,值传递
func showPoint(pos Point) {
fmt.Println("x=", pos.x, "y=", pos.y)
}
// 移动点,引用传递
func movePoint(pos *Point) {
// 传递指针,使用时不需要像 C 语言一样使用 *pos-> 的表达方式,与值引用相同 . 访问成员变量
pos.x += 1
pos.y += 1
}
// 显示线
func showLine(line Line) {
// 使用格式化打印方式 %d 代表占位符,"" 之后的第一个参数以整数的方式输出
fmt.Printf("(x1=%d, y1=%d), (x2=%d, y2=%d)\n",
line.begin.x, line.begin.y, line.end.x, line.end.y)
}
func main() {
fmt.Println("struct")
// 结构体变量声明方式1:只声明,值在下文设置
var pBegin Point
// 结构体变量声明方式2:声明并初始化
pEnd := Point {y:20, x:15}
pBegin.x = 10
pBegin.y = 10
showPoint(pBegin)
showPoint(pEnd)
movePoint(&pBegin)
showPoint(pBegin)
var line Line
line.begin = pBegin
line.end = pEnd
showLine(line)
}
Go 学习笔记-结构体
最新推荐文章于 2023-04-15 22:53:59 发布