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}