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的内容
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容