bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

go語言方法接受者 go語言的defer

淺談Go語言函數與方法的區別

前段時間,我們實驗室用go作為后臺開發語言開發了一個web項目,由于這是自己第一次使用go語言進行開發,在開發過程中,一味著追求完成任務,在編碼的時候沒有太注重性能,雖然勉強實現了功能,但是對go語言的理解還是比較淺顯的。下面來談談自己對go語言中函數與方法的理解。

創新互聯公司主要從事成都做網站、成都網站制作、成都外貿網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務孝昌,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792

普通函數:

go函數可以返回多個值

值傳遞: 值傳遞是指在調用函數時將實際參數復制一份傳遞到函數中,這樣函數中如果對參數進行修改,將不會影響到實際參數

引用傳遞: 引用傳遞是指在調用函數將實際參數的地址傳遞到函數中,那么在函數中對參數進行的修改,將影響到實際參數。

一般來說go語言函數的 接收者(也就是形參)一般放在函數名后面 ,不能將指針類型的數據直接傳遞,也就是說函數形參如果是值類型,調用者必須使用值作為實參過來,如果函數形參是指針類型,則函數調用者需使用指針作為實參來調用。

普通方法:

接收者是在func關鍵字后面,而不是在函數名稱后面,接收者可以是自己定義的一個類型,這個類型可以是struct、interface,一個方法就是一個包含了接收者的函數,接收者可以是命名類型或者是結構體類型的一個值或者是一個指針。

下面是一個例子來說明方法和函數的區別(重點)

go語言 不同的接口含有相同的方法 怎么辦

下面定義一個結構體類型和該類型的一個方法:

復制代碼代碼如下:

type User struct {

Name string

Email string

}

func (u User) Notify() error

首先我們定義了一個叫做 User 的結構體類型,然后定義了一個該類型的方法叫做 Notify,該方法的接受者是一個 User 類型的值。要調用 Notify 方法我們需要一個 User 類型的值或者指針:

復制代碼代碼如下:

// User 類型的值可以調用接受者是值的方法

damon := User{"AriesDevil", "ariesdevil@xxoo.com"}

damon.Notify()

// User 類型的指針同樣可以調用接受者是值的方法

alimon := User{"A-limon", "alimon@ooxx.com"}

alimon.Notify()

Golang入門到項目實戰 | golang方法

go語言沒有面向對象的特性,也沒有類對象的概念。但是,可以使用結構體來模擬這些特性,我們都知道面向對象里面有類方法等概念。我們也可以聲明一些方法,屬于某個結構體。

Go中的方法,是一種特殊的函數,定義域struct之上(與struct關聯、綁定),被稱為struct的接受者(receiver)。通俗的講,方法就是有接收者的函數。

語法格式如下:

mytype:定義一個結構體

recv:接受該方法的結構體(receiver)

my_method:方法名稱

para:參數列表

return_type:返回值類型

從語法格式可以看出,一個方法和一個函數非常相似,多了一個接受類型。

實例

運行結果

網站名稱:go語言方法接受者 go語言的defer
瀏覽地址:http://vcdvsql.cn/article12/doieddc.html

成都網站建設公司_創新互聯,為您提供企業建站網站營銷動態網站軟件開發域名注冊品牌網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設