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

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

在對(duì)象的字段而不是對(duì)象上調(diào)用方法?

在對(duì)象的字段而不是對(duì)象上調(diào)用方法?

Go
慕容3067478 2021-08-16 15:51:05
此代碼有一些對(duì)象代表用戶和創(chuàng)建該用戶的管理員。它是申請(qǐng)人提交給我們的一些代碼的精簡(jiǎn)版。當(dāng)您嘗試刪除用戶時(shí),代碼已損壞并刪除管理員(如 所示main)。為什么u.Delete叫admin的delete而不是user的delete?package adminimport "fmt"type Admin struct {}func (Admin) Delete() {    fmt.Println("deleting admin")}package userimport (    "fmt"    "admin")type User struct {*admin.Admin}func (*User) D??lete() {    fmt.Println("deleting user")}package mainimport (    "admin"    "user")func main() {    u := user.User{&admin.Admin{}}    u.Delete()}$ GOPATH=`pwd` go run a.go deleting admin
查看完整描述

2 回答

?
繁華開滿天機(jī)

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

在您的示例代碼中e,UserDelete方法中的字母e與 AdminDelete方法中的字母編碼不同。由于 Go 支持 utf8,這不是錯(cuò)誤,而是一種不同的方法。修復(fù)ein User 的Delete方法,一切都應(yīng)該按預(yù)期工作。


查看完整回答
反對(duì) 回復(fù) 2021-08-16
?
狐的傳說(shuō)

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

因?yàn)橛脩舻?delete 方法是為 *User 而不是 for 定義的User,而 Admin 的 Delete 是為非指針定義的Admin。用戶嵌入了 Admin,因此它繼承了func (Admin) Delete()方法。


嘗試使用指向用戶的指針(注意&)


func main() {

    u := &user.User{&admin.Admin{}}

    u.Delete()

}


查看完整回答
反對(duì) 回復(fù) 2021-08-16
  • 2 回答
  • 0 關(guān)注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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