小編給大家分享一下Go語言中方法指的是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、虛擬空間、營銷軟件、網站建設、西峰網站維護、網站推廣。方法是具有特殊接收器參數的函數,即在 func 和方法名之間方法接收者。
func (s Student) GetName() string { return s.name}func (s *Student) SetName(name string) { s.name = name}
我們可以把接收者類型為指針的成員方法叫做指針方法,把接收者類型為非指針的成員方法叫做值方法。
在你需要修改對象的時候,才必須用指針(引用傳遞),否則將所屬類型聲明為字面量即可(值傳遞)。另外避免在每個方法調用上復制該值。
type Integer intfunc (a *Integer) Increase(i Integer) { *a = *a + i}func main() { var a Integer = 2 var b Integer = 2 //a.Increase(b) //(&a).Increase(b) (*Integer).Increase(&a, b) fmt.Println(a)}
該方法并不屬于 Integer 類,而是屬于指向 Integer 的指針類型,我們在調用方法時,之所以可以直接在 a 實例上調用 Increase 方法,是因為 Go 語言編譯階段會自動將 a 轉化為對應的指針類型 &a
,所以真正調用的代碼是 (&a).Increase(b)
。
type A struct { name string}func (a A) Name() string { a.name = "Hi! " + a.name return a.name}func main() { a := A{name: "test"} fmt.Println(a.Name()) fmt.Println(A.Name(a))}
a.Name()
其實就是 A.Name(a)
的語法糖,變量 a 就是所謂的方法接收者。
func NameOfA(a A) string { a.name = "Hi! " + a.name return a.name}func main() { t1 := reflect.TypeOf(A.Name) t2 := reflect.TypeOf(NameOfA) fmt.Println(t1 == t2)// true}
go 語言中函數類型只和參數與返回值相關,所以這兩個類型相等就能證明 方法本質上就是普通的函數,而接收者就是隱含的第一個參數。
以上是Go語言中方法指的是什么的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯-成都網站建設公司行業資訊頻道!
網站題目:Go語言中方法指的是什么-創新互聯
文章分享:http://vcdvsql.cn/article48/cssphp.html
成都網站建設公司_創新互聯,為您提供外貿網站建設、自適應網站、動態網站、手機網站建設、Google、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯