第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

用作結(jié)構(gòu)字段或結(jié)構(gòu)方法

用作結(jié)構(gòu)字段或結(jié)構(gòu)方法

Go
絕地?zé)o雙 2022-08-09 20:09:49
任何人都可以幫我澄清在哪些情況下最好使用函數(shù)作為結(jié)構(gòu)字段,何時(shí)作為結(jié)構(gòu)的方法?
查看完整描述

1 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

函數(shù)類(lèi)型的字段不是方法,因此它不是結(jié)構(gòu)類(lèi)型的方法集的一部分。以結(jié)構(gòu)類(lèi)型作為接收器聲明的“true”方法將成為方法集的一部分。


話雖如此,如果你想實(shí)現(xiàn)一個(gè)接口,你別無(wú)選擇,只能定義“true”方法。


方法“附加”到具體類(lèi)型,無(wú)法在運(yùn)行時(shí)更改。函數(shù)類(lèi)型的字段可用于“模仿”虛擬方法,但如上所述,這不是方法??梢栽谶\(yùn)行時(shí)重新分配函數(shù)類(lèi)型的字段。


如以下示例所示:


type Foo struct {

    Bar func()

}


func main() {

    f := Foo{

        Bar: func() { fmt.Println("initial") },

    }

    f.Bar()


    f.Bar = func() { fmt.Println("changed") }

    f.Bar()

}

哪些輸出(在Go Playground上嘗試):


initial

changed

函數(shù)類(lèi)型的字段通常用于存儲(chǔ)回調(diào)函數(shù)。來(lái)自標(biāo)準(zhǔn) lib 的示例是 http。服務(wù)器和 http.運(yùn)輸。


查看完整回答
反對(duì) 回復(fù) 2022-08-09
  • 1 回答
  • 0 關(guān)注
  • 119 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)