Go 学习笔记 08 | 结构体详解

一、结构体

实例化结构体

第一种实例化结构体:var 变量 结构体

package main

import (
	"fmt"
)

type Person struct {
   
	name string
	age int
	sex string
}

func main() {
   
	var p1 Person  // 实例化 Person 结构体
	p1.name = "张三"
	p1.sex = "男"
	p1.age = 20
	fmt.Printf("值:%v 类型:%T\n", p1, p1)
	fmt.Printf("值:%#v 类型:%T", p1, p1)
}

输出:

值:{张三 20 男} 类型:main.Person
值:main.Person{name:"张三", age:20, sex:"男"} 类型:main.Person

结构体首字母可以大写也可以小写,大写表示这个结构体是公有的,在其他包里面可以使用,小写表示这个结构体是私有的,只有在这个包里面才能使用。

第二种实例化结构体:new 关键词

在 Golang 中支持对结构体指针直接使用.来访问结构体的成员。p2.name = "张三" 其实在底层是 (*p2).name = "张三"

package main

import (
	"fmt"
)

type Person struct {
   
	name string
	age int
	sex string
}

func main() {
   
	var p2 = new(Person)
	p2.name = "李四"
	p2.sex = "男"
	p2.age = 20
	fmt.Printf("值:%v 类型:%T\n", p2, p2)
	(*p2).name = "王五"
	fmt.Printf("值:%v 类型:%T\n", p2, p2)
}

输出:

值:&{李四 20 男} 类型:*main.Person
值:&{王五 20 男} 类型:*main.Person

第三种实例化结构体:取结构体地址

package main

import (
	"fmt"
)

type Person struct {
   
	name string
	age int
	sex string
}

func main() {
   
	var p3 = &Person{
   }
	p3.name = "赵四"
	p3.sex = "男"
	p3.age = 20
	fmt.Printf("值:%v 类型:%T\n", p3, p3)
}

输出:

值:&{赵四 20 男} 类型:*main.Person

第四种实例化结构体:键值对

package main

import (
	"fmt"
)

type Person struct {
   
	name 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wonz

创作不易,一块就行。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值