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() }
上下一对比,丫的几乎一样,几乎一样,能不一样吗?一个是爹,一个是娃, 都是爹的娃,不随爹,就得问隔壁王老五是啥原因了。。。。。