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