新聞中心
從一個(gè)結(jié)構(gòu)體實(shí)例對(duì)象中獲取字段的值,通常都是使用 . 這個(gè)操作符,該操作符叫做 選擇器。

成都創(chuàng)新互聯(lián)專注于撫順縣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,電子商務(wù)商城網(wǎng)站建設(shè)。撫順縣網(wǎng)站建設(shè)公司,為撫順縣等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
選擇器有一個(gè)妙用,可能大多數(shù)人都不清楚。
當(dāng)你對(duì)象是結(jié)構(gòu)體對(duì)象的指針時(shí),你想要獲取字段屬性時(shí),按照常規(guī)理解應(yīng)該這么做
- type Profile struct {
- Name string
- }
- func main() {
- p1 := &Profile{"iswbm"}
- fmt.Println((*p1).Name) // output: iswbm
- }
但還有一個(gè)更簡(jiǎn)潔的做法,可以直接省去 * 取值的操作,選擇器 . 會(huì)直接解引用,示例如下
- type Profile struct {
- Name string
- }
- func main() {
- p1 := &Profile{"iswbm"}
- fmt.Println(p1.Name) // output: iswbm
- }
也正是這個(gè)原因,因此在給你一個(gè)方法指定定一個(gè)接收者的時(shí)候,訪問(wèn)接收者的對(duì)象時(shí),不需要像下面這樣顯示的解引用
- type Person struct {
- name string
- }
- func (p *Person) Say() {
- fmt.Println((*p).name)
- }
而可以直接這樣寫(xiě)
- type Person struct {
- name string
- }
- func (p *Person) Say() {
- fmt.Println(p.name)
- }
是不是很簡(jiǎn)單?跟著明哥一起來(lái)攻克 Go 的各個(gè)邊邊角角的知識(shí)吧
本文名稱:Go:對(duì)象選擇器自動(dòng)解引用是什么?
標(biāo)題來(lái)源:http://www.dlmjj.cn/article/djhossc.html


咨詢
建站咨詢
