go语言基础 结构体作为参数

结构体作为参数和返回值
func fun1(p Person){} // 值传递

        func fun2(p *Person){}// 引用传递

package main

import "fmt"

type person3 struct {
   name string
   age int
}

func main()  {
   p1 := person3{"王二狗", 30}
   fmt.Println(p1)
   changeName(p1)
   fmt.Println(p1)

   changeName2(&p1)
   fmt.Println(p1) //{李小花 30}
}

func changeName(p person3)  { // p = p1,值传递
   p.name = "西哲"
   fmt.Println(p)
}

func changeName2(p *person3)  { // p,指针类型 p = &p1
   p.name ="李小花"
   fmt.Println(p,*p) //&{李小花 30}
}

你可能感兴趣的:(go语言基础 结构体作为参数)