go struct 使用

简介: go struct 使用

没有任何的私有、公有关键字, 通过大小写来实现(大写开头的为公有,小写开头的为私有),方法也同样适用这个原则。

记住 struct 中的字段尽量都是用大写字母开头,否则的话, 在进行反射操作 reflect 时会造成外部无法访问到变量内容的故障, 并且编译器不会提示


一个简单的工人类型

type worker struct{
    Name string
    WorkNO string
}


简单工人类型的初始化操作

// 只是进行初始化,不对结构体进行赋值
var oneworker   worker
// 按照字段名称来进行初始化
//这样不需要遵守 定义字段时的顺序
Oneworker := worker{ "Name":  "kiki"  ,"WorkNo":"20200619" }
//按照定义字段时候的顺序来进行初始化
Oneworker := worker{“kiki”,“20200619”}


匿名字段

一个简单的 经理 类型: 包含工人的所有特征,但是还拥有工人没有的字段名称

type manager struct{
worker
position string // 职位
}

此时manager 不仅仅包含 position 的属性, worker 结构体的所有字段

初始化的时候也可以直接按照 worker 来初始化,并添加 position 属性

Onemanager := manager{ worker{“kiki”,“20200619”} , “ceo” }

字段重载

当 两个 结构体的字段名称冲突时遵守外层访问优先原则

// struct 的 方法
type Box  struct {
 Width  string 
 Height  string
 Depth  string
  Color  string
} 
// 当不需要修改 box 的值的时候,使用 Box 
func (b Box) Volume() float64 {
        return b.Width * b.Height * b.Depth
}
// 当需要修改值得时候 采用  * point  指针进行访问
func (b *Box) SetColor(c Color) {
        b.Color = c
}

func (接受者的类型) 函数名 (参数) (返回值)

结构体的方法,可以跟随 匿名字段一起被继承

没有任何的私有、公有关键字,通过大小写来实现(大写开头的为公有,小写开头的为私有),方法也同样适用这个原则。

相关文章
|
23天前
|
程序员 Go
go语言中结构体(Struct)
go语言中结构体(Struct)
97 71
|
3月前
|
存储 Go
Go: struct 结构体类型和指针【学习笔记记录】
本文是Go语言中struct结构体类型和指针的学习笔记,包括结构体的定义、成员访问、使用匿名字段,以及指针变量的声明使用、指针数组定义使用和函数传参修改值的方法。
|
4月前
|
JSON 编译器 Go
Go struct
该文章详细讨论了Go语言中的结构体,包括结构体的字面形式、内存对齐和填充、字段标签的使用、结构体值的赋值和可寻址性、组合字面量的取地址特性、通过指针访问结构体字段的隐式解引用,以及结构体值的比较和类型转换。
22 3
|
4月前
|
Go
Go - struct{} 实现 interface{}
Go - struct{} 实现 interface{}
43 9
|
4月前
|
JSON Go 数据格式
Go实现json字符串与各类struct相互转换
文章通过Go语言示例代码详细演示了如何实现JSON字符串与各类struct之间的相互转换,包括结构体对象生成JSON字符串和JSON字符串映射到struct对象的过程。
38 0
|
6月前
|
JSON Go 数据格式
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】(4)
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】
|
6月前
|
Java 编译器 Go
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】(3)
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】
|
6月前
|
存储 安全 Go
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】(2)
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】
|
6月前
|
Java Go 索引
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】(1)
Go 语言基础之指针、复合类型【数组、切片、指针、map、struct】
|
7月前
|
Go 开发者
Golang深入浅出之-Go语言结构体(struct)入门:定义与使用
【4月更文挑战第22天】Go语言中的结构体是构建复杂数据类型的关键,允许组合多种字段。本文探讨了结构体定义、使用及常见问题。结构体定义如`type Person struct { Name string; Age int; Address Address }`。问题包括未初始化字段的默认值、比较含不可比较字段的结构体以及嵌入结构体字段重名。避免方法包括初始化结构体、自定义比较逻辑和使用明确字段选择器。结构体方法、指针接收者和匿名字段嵌入提供了灵活性。理解这些问题和解决策略能提升Go语言编程的效率和代码质量。
152 1