Golang 给结构体或结构体指针绑定函数的区别

  • 1.【给结构体绑定函数】是对结构体的拷贝;
    1. 如果想在拷贝中改变原本结构体存放的值, 那就用【给结构体指针绑定函数】的方式;

package main

import "fmt"

type Test struct{
    name  string
}

//给结构体绑定函数      值传递
func (test Test) function(){
    test.name = "结构体"
}

//给结构体指针绑定函数    引用传递
func(test *Test) pointFunction(){
    test.name = "结构体指针"
}

func main(){
    test := &Test{"创建赋值"}           
    test.function()
    fmt.Println("name = ",test.name)    // 打印 name = "创建赋值",由于是值传递,不修改name的实际值


    var test1 Test
    test1.pointFunction()
    fmt.Println("name = ",test1.name)   // 打印 name = "结构体指针",是引用传递会修改test.name的内容
}

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
虹的头像 - 鹿快
评论 共1条

请登录后发表评论