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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關(guān)鍵字var后面的下劃線和接口名稱是什么意思?

關(guān)鍵字var后面的下劃線和接口名稱是什么意思?

關(guān)鍵字var后面的下劃線和接口名稱是什么意思?來自http://golang.org/src/pkg/database/sql/driver/types.go :type ValueConverter interface {     // ConvertValue converts a value to a driver Value.     ConvertValue(v interface{}) (Value, error)}var Bool boolType type boolType struct{}var _ ValueConverter = boolType{} // line 58func (boolType) String() string { return "Bool" }func (boolType) ConvertValue(src interface{}) (Value, error) {....}我知道ValueConverter是一個接口名稱。第58行似乎聲明boolType實現(xiàn)接口ValueConverter,但這是必要的嗎?我刪除了第58行,代碼運行良好。
查看完整描述

2 回答

?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊

它提供boolType滿足ValueConverter接口的靜態(tài)(編譯時)檢查。將_用作變量的名稱告訴編譯器有效地丟棄RHS值,但類型檢查,如果有任何副作用評價它,但匿名變量本身不采取任何進(jìn)程空間。

在開發(fā)時它是一個方便的構(gòu)造,并且接口的方法集和/或由類型實現(xiàn)的方法經(jīng)常被改變。該構(gòu)造用作防止忘記匹配類型的方法集和用于使它們兼容的接口的方法集。它有效地防止go install了這種遺漏的破碎(中間)版本。


查看完整回答
反對 回復(fù) 2019-08-08
?
慕勒3428872

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

看起來你正在創(chuàng)建一個類型的虛擬值,為它ValueConverter分配一個新boolType對象然后丟棄它(這就是go中下劃線的含義,for _, elt := range myRange { ...}如果你對枚舉的索引不感興趣)。

我的猜測是它只是對應(yīng)一個靜態(tài)檢查,以確保結(jié)構(gòu)boolType確實實現(xiàn)了ValueConverter接口。這樣,當(dāng)您更改實現(xiàn)時boolType,如果您破壞了ValueConverter接口的實現(xiàn),編譯器會提前抱怨,因為它將無法將您的新boolType接口轉(zhuǎn)換為此接口。


查看完整回答
反對 回復(fù) 2019-08-08
  • 2 回答
  • 0 關(guān)注
  • 887 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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