go-struct指针与值传递

发布时间 2023-05-06 18:38:49作者: 黑熊一只

示例如下

 1 type compare0 struct {
 2     version1 string
 3     version2 string
 4 }
 5 func (c compare0) setV1(str string) string {
 6     c.version1 = str
 7     return c.version1
 8 }
 9 
10 func (c compare0) getV1() string {
11     return c.version1
12 }
13 
14 func (c compare0) getV2() string {
15     return c.version2
16 }
17 //cnblogs的代码编辑器好难用哇 -_-!!!
18 func main() {
19     c := compare0{"1.1", "1.2"}
20 
21     fmt.Println(c.setV1("1.1.1"))
22     fmt.Println(c.getV1())
23     fmt.Printf("%+v", c)
24 }

浅谈场景

1、指针传递

  指针传递的话,成员可变。

2、值传递

  成员属性的初值不变,只能在某个区域内,变动后生效,无法贯穿到这个struct的变量中。