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

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

無法在給定類型的類型定義上調(diào)用方法

無法在給定類型的類型定義上調(diào)用方法

Go
幕布斯7119047 2022-06-13 17:19:40
我正在使用 Google Wire 進(jìn)行依賴注入,我想要 2 個(gè)記錄器(錯(cuò)誤和信息)。所以我創(chuàng)建了以下提供程序:type errorLogger *log.Loggertype infoLogger  *log.Loggertype Logger struct {  Error errorLogger  Info  infoLogger}func ProvideLogger() *Logger {  return &Logger{    Error: log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile),    Info:  log.New(os.Stdout, "INFO\t", log.Ldate|log.Ltime),  }}在我的代碼中,我這樣引用記錄器h.Logger.Error但是,這并沒有讓我像我想象的那樣訪問這些logger方法(例如Println,F(xiàn)atalf等)我假設(shè)我引用的東西不正確,只是不確定是什么。
查看完整描述

2 回答

?
神不在的星期二

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

定義為的新類型type errorLogger *log.Logger不繼承基礎(chǔ)類型的方法。


請(qǐng)參閱 Go 規(guī)范、類型聲明 >類型定義:


定義的類型可能具有與之關(guān)聯(lián)的方法。它不繼承綁定到給定類型的任何方法,但接口類型或復(fù)合類型元素的方法集保持不變


type Mutex struct         { /* Mutex fields */ }

func (m *Mutex) Lock()    { /* Lock implementation */ }

func (m *Mutex) Unlock()  { /* Unlock implementation */ }


// NewMutex has the same composition as Mutex but its method set is empty.

type NewMutex Mutex


// The method set of PtrMutex's underlying type *Mutex remains unchanged,

// but the method set of PtrMutex is empty.

type PtrMutex *Mutex

由此可見Printf和 其他*log.Logger方法不在 和的方法集中。errorLoggerinfoLogger


您可以使用組合:


type errorLogger struct {

   *log.Logger

}

然后你可以初始化它:


&Logger{

    Error: errorLogger{

        Logger: log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile),

    },

}


查看完整回答
反對(duì) 回復(fù) 2022-06-13
?
慕碼人2483693

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

兩個(gè)新的 logger 類型 errorLogger 和 infoLogger 是新類型,它們沒有底層類型的方法。您應(yīng)該直接使用記錄器類型而不創(chuàng)建新類型,或者使用嵌入定義新的記錄器類型。當(dāng)您定義新的結(jié)構(gòu)類型并嵌入記錄器時(shí),新類型將具有嵌入類型的方法。當(dāng)您像您一樣定義新類型時(shí),新類型將沒有其基本類型的方法。



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

添加回答

舉報(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)