Go/复合数据类型/struct-结构体

# 结构体

package main

import "fmt"

type Stu struct{
	age int
	sex byte	//字符型
	name string
}

func main() {
	//结构体定义与初始化
	//顺序初始化  每个成员都必须初始化
	var s Stu = Stu{18,'m',"Lusa"}
	fmt.Println(s)					//{18 109 Lusa}
	//指定初始化  剩余成员默认值
	ss := Stu{name:"Tom"}
	fmt.Println(ss)					//{0 0 Tom}

	var ps *Stu = &Stu{18,'m',"Lusa"}
	pss := &Stu{name:"Jack"}
	fmt.Println(ps)					//&{18 109 Lusa}
	fmt.Println(*ps)				//{18 109 Lusa}
	fmt.Printf("%T\n",pss)		//*main.StuB

	//结构体比较与赋值
	s2 := s
	fmt.Println(s == s2)			//true

	test()

	test2(s)						//值传递
	test3(&s)						//传递地址
}

func test(){
	var s Stu
	var ps *Stu = &s
	ps2 := new(Stu)
	s.age = 18
	(*ps).sex = 'm'
	ps.name = "Amy"
	fmt.Println(s)
	fmt.Println(*ps2)
}

func test2(s Stu){
	s.age = 20
}

func test3(s *Stu){
	s.age = 20
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值