首頁  >  文章  >  後端開發  >  ## 為什麼我可以在 Go 中呼叫值的指標方法?

## 為什麼我可以在 Go 中呼叫值的指標方法?

Barbara Streisand
Barbara Streisand原創
2024-10-25 13:21:02297瀏覽

## Why Can I Call a Pointer Method on a Value in Go?

Go 接收器方法呼叫語法混亂

在《Effective Go》的「指標與值」部分中,它指出「可以在指標和值上呼叫值方法” ,但指標方法只能在指標上呼叫。 」這是因為指標方法可以修改接收器,並且在值的副本上調用它們將導致這些修改被丟棄。

但是,一些開發人員遇到了一種情況,他們能夠對值調用指標方法,這似乎與記錄的語法規則相矛盾。中,我們使用兩個方法定義年齡類型: String( )(值方法)和Set()(指標方法)。 )。 。 age 的方法集包含Set () 中,呼叫vAge.Set() 是(&vAge).Set() 的簡寫符號。因此,程式碼表明確實可以在指標上調用值方法,因為在可尋址值上調用它們相當於在指向該值的指針上調用方法價值。值可尋址的情況下,隱式取消引用允許語法vAge.Set() 有效。

以上是## 為什麼我可以在 Go 中呼叫值的指標方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn