求助大神,关于go语言结构体变量和结构体指针变量的区别

package main

import (
"fmt"
)

type Fu struct {
b int
}

type Zi struct {
a int
*Fu
}

func (zi *Zi) show() {
//这里可以用结构体指针变量点出属性
fmt.Println(zi.b)
fmt.Println(zi.a)

//这里可以用结构体变量点出属性
fmt.Println((*zi).b)
fmt.Println((*zi).a)
}

func main() {
var a Zi = Zi{a: 20, Fu: &Fu{b: 10}}

//为什么这里用结构体变量可以点出show函数
a.show()

b := &a
//为什么这里用结构体指针变量也可以点出show函数
b.show()
}

牧羊人nacy
浏览 294回答 2
2回答

aluckdog

主要看优先级别,->比++的优先级别高,++p->num,因为->优先级别高,所以先算p->num,然后num++,p++->num,先算p->num,然后p++
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go