91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析Go語言中的方法

發布時間:2022-01-17 17:59:10 來源:億速云 閱讀:146 作者:柒染 欄目:數據庫

如何分析Go語言中的方法,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

概念

在golang中的方法是作用在特定類型的變量上,因此自定義類型都是可以有方法的,不僅僅只有一個struct 結構體。

方法和函數的區別

但是這里方法和我們之前介紹的函數有什么區別呢?

大致小棧君為大家講解一下,在函數中并沒有對象的概念,因此我們對面向對象的函數叫做方法,但是他們本質上都是function,只是函數并不屬于任何一個對象,因此只要符合條件的參數都是可以調用函數。

但是并不適用于方法。因為方法僅限于某一個對象,在后面小棧君會給大家進行實例舉例說明。

格式

針對于Go語言中的方法的格式如下:

func (receive  type) methodName(args ) (返回參數){}

就拿我們之前講過的一個例子而言,我們定義的一個car 和一個smallCar 結構體,其中SmallCar繼承了Car的屬性,理所應當的也繼承了相應的方法。

但是小伙伴請注意,我們在定義方法的時候限定了Car,也就是說這一個Run方法除了Car和繼承Car的子類,其他對象是無法使用的。如果強行使用編譯器會直接報錯,具體例子如圖所示:

特別注意的一點是,在Go語言中依舊要區分值傳遞和引用傳遞,如下圖所示:

也就是說在方法中也是區分了這個差別,如果稍微不注意,對于新手的小伙伴來講很有可能會導致排查半天的問題而不得解。

同樣的是方法也是遵循大小寫的區別,小寫的作用域只限于當前的文件中,對于其他外部需要調用的方法我們統一會進行首字母大寫處理。這也算是Go語言的一個規范,小棧君也是多次說過這個問題,希望小伙伴注意一下這個問題。

繼承

同樣類似于結構體中的繼承,方法也是同樣可以繼承的,就如上圖所示,我們的SmallCar繼承了Car的相關屬性,同樣SmallCar也同樣擁有Car所特有的方法。

組合和匿名字段

如果一個struct嵌套了另一個匿名結構體,那么這個結構體可以直接訪問匿名結構體的方法從而實現繼承,如果一個結構體嵌套了多個匿名結構體。

那么這個結構體可以直接訪問多個匿名結構體的方法,從而實現多重繼承,當然在真實的項目當中并不推薦多重繼承。

如果發現問題這會導致代碼的排查復雜性和代碼的可讀性變差。

看完上述內容,你們掌握如何分析Go語言中的方法的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云龙县| 韶山市| 宿州市| 迁安市| 兴安县| 庄浪县| 高安市| 连南| 峡江县| 察雅县| 威海市| 宜城市| 靖西县| 忻城县| 无锡市| 忻州市| 剑阁县| 临西县| 唐海县| 贵德县| 额尔古纳市| 江西省| 冕宁县| 德清县| 宁南县| 马公市| 调兵山市| 奉贤区| 乐陵市| 马边| 山丹县| 海城市| 苍南县| 通榆县| 凉城县| 平山县| 通海县| 鱼台县| 新田县| 武强县| 临桂县|