亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何分析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

本溪市| 定远县| 湖口县| 广元市| 上饶市| 开封市| 天祝| 龙川县| 连云港市| 铜梁县| 留坝县| 将乐县| 永寿县| 怀柔区| 会昌县| 资讯| 晋宁县| 渭南市| 嘉义县| 三河市| 元氏县| 林西县| 宁阳县| 安新县| 抚宁县| 中江县| 平湖市| 托克逊县| 得荣县| 福清市| 楚雄市| 广昌县| 华坪县| 房产| 成武县| 乌兰县| 柳州市| 安康市| 宁德市| 龙门县| 什邡市|