type nameage struct {
name string
age int
}
na:=new(nameage)
(*na).age=25
//na.age=25
(*na).name="ddj"
//na.name="ddj"
fmt.Println((*na).name)
fmt.Println(na.name)
以上代码,我发现(*na).age
和 na.age
的作用是一样的,打印出来的结果也是一样的。
但是从语法上来看,我认为(*na).name
才是合法的,因为na
是一个指针,age
和name
都是nameage
的成员变量,应该先 (*na)
来获取对象,然后再去获取这个对象的成员。
我不知道为什么结果都一样,是go自动处理掉了?还是有其他说法?