Go 结构体
1. type关键字
- 定义类型别名
type myInt = int
var a myInt = 1
var b int = 2
fmt.Println(a + b)
-
类型定义
-
定义接口
-
定义结构体
-
类型判断
2. 结构体
- 定义结构体
type person struct {
name string
age int
address string
height float32
}
- 赋值
func main() {
// 赋值方式1
p1 := person{"tom", 18, "go", 1.80}
p1.name = "boby"
// 复制方式2
p2 := person{name: "tom", age: 18, address: "go", height: 1.80}
}
- 取值
fmt.Println(p1.name)
fmt.Println(p2.name)
2.匿名结构体
func main() {
address := struct {
province string
city string
address string
}{
"省份",
"城市",
"地址",
}
fmt.Println(address.city)
}
3.结构体嵌套
- 定义
type myAddress struct {
province string
city string
address string
}
type person struct {
name string
age int
address myAddress
height float32
}
- 赋值
func main() {
p1 := person{
name: "tom",
age: 18,
address: myAddress{
province: "省份",
city: "城市",
address: "地址",
},
height: 1.80,
}
p1.address.city = "城市1"
fmt.Println(p1)
}
- 取值
fmt.Println(p1.address.city)
4. 结构体方法
// 结构体
type myAddress struct {
province string
city string
address string
}
// 附在结构体上的方法,(方法名之前的括号)
func (ma myAddress) myPrint() {
fmt.Println(ma.province, ma.city, ma.address)
}
func main() {
my := myAddress{"省份", "城市", "地址"}
my.myPrint()
}
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2020-03-13 git