golang的作者也是c语言的作者,所以学习golang时,没事最好关注一下c语言,他们两个几乎一致,不是几乎,应该是一模一样吧。

我们先看一下c语言的程序,为了简便期间,我们只用最基础的东西来讲解,不要高深,喜欢深度的可以去看东京热,咱只是让你看个明白,好,不唠叨上代码。这是我的c语言

 1 #include <stdio.h>
 2   
 3 typedef struct Person{
 4         int Age;
 5 } Person;
 6 
 7 void PrintAge(Person p) {
 8         printf("Age:%d\n", p.Age);
 9 }
10 
11 void SetAge(Person *p, int age) {
12         (*p).Age = age;
13 }
14 
15 int main() {
16         Person A={18};
17         PrintAge(A);
18         SetAge(&A, 28);
19         PrintAge(A);
20 }

下面是golang的代码,没事对比一下

package main
  
import "fmt"

type Person struct {
        Age     int
}

func (p Person) Print() {
        fmt.Printf("Age:%d\n", p.Age)
}

func (p *Person)SetAge(age int) {
        p.Age = age //p->Age = age , *(p).Age
}

func main() {
        A := Person{18}
        A.Print()
        A.SetAge(28)
        A.Print()
}

上下一对比,丫的几乎一样,几乎一样,能不一样吗?一个是爹,一个是娃, 都是爹的娃,不随爹,就得问隔壁王老五是啥原因了。。。。。