1、结构体做函数参数值传递
示例:
package main //必须有个main包 import "fmt" //定义一个结构体类型
type Student struct {
id int
name string
sex byte //字符类型
age int
addr string
} func test01(s Student) {
s.id = 666
fmt.Println("test01: ", s)
} func main() {
s := Student{1, "mike", 'm', 18, "bj"} test01(s) //地址传递
fmt.Println("main: ", s) }
执行结果:
test01: {666 mike 109 18 bj}
main: {1 mike 109 18 bj}
2、结构体做函数参数:地址传递
示例:
package main //必须有个main包 import "fmt" //定义一个结构体类型
type Student struct {
id int
name string
sex byte //字符类型
age int
addr string
} func test02(p *Student) {
p.id = 666
} func main() {
s := Student{1, "mike", 'm', 18, "bj"} test02(&s) //地址传递(引用传递),形参可以改实参
fmt.Println("main: ", s) }
执行结果:
main: {666 mike 109 18 bj}