Golang中调用“方法”的简单理解
生活随笔
收集整理的這篇文章主要介紹了
Golang中调用“方法”的简单理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果聲明函數的時候帶有接收者,則意味著聲明了一個方法,同時,這個方法會和指定的接收者的類型綁在一起。
如:
func (m defaultMatcher) Search(feed *Feed, searchTerm string) ([]*Result, error)
m defaultMatcher 聲明接受者是defaultMatcher,如果聲明函數的時候帶有接收者,則意味著聲明了一個方法。這個方法會和指定的接收者的類型綁在一起;
feed *Feed, searchTerm string 表示輸入參數是指向Feed類型的指針和字符串;
[]*Result, error 表示返回參數是指向Result類型的指針的切片和錯誤類型;
同時:
接受者有值接受者和指針接受者兩種類型。
值接收者使用值的副本來調用方法,而指針接受者使用實際值來調用方法(相當于內置類型和引用類型的區別),且為了匹配方法的接收者類型,會使用&和*進行轉換。
對于結構體類型,無論是值接收者還是指針接受者,我們使用值或指針調用方法時,編譯器都會正確地引用或者解引用對應的值,調用對應的方法。(也因為大部分方法在被調用后都需要維護接收者的值的狀態,所以,建議使用指針接受者。)
但是對于接口類型,對于指針接收者,只能使用指針調用該方法;對于值接受者,可以用值或指針調用該方法
總結
以上是生活随笔為你收集整理的Golang中调用“方法”的简单理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《新版阿里巴巴Java开发手册》提到的三
- 下一篇: 你还不知道Redis 高延迟时发生了啥嘛