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

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

為什么是“錯誤!= nil”?

為什么是“錯誤!= nil”?

Go
MMTTMM 2021-10-25 18:25:36
我有一種情況,變量“err error”值的值只能是“nil”,但一旦被重新分配就斷言“(err == nil) == false”。示例代碼如下:package mainimport (    "fmt"    "log")type TestError struct {    Message string}func (e *TestError) Error() string {    return e.Message}func NewTestError(err error) *TestError {    if err == nil {            return nil    }    log.Printf("NewTestError( ... ): creating new NewTestError err = %s", err)    return &TestError{Message: err.Error()}}func main() {    var err error    _, err = fmt.Printf("excuse.\n")    err = NewTestError(err)    log.Printf("main( ... ): err == nil. %v", (err == nil))    log.Printf("main( ... ): err = %#v", err)}我從上面的代碼中得到以下輸出:excuse.2015/07/30 08:28:28 main( ... ): err == nil. false2015/07/30 08:28:28 main( ... ): err = (*main.TestError)(nil)最后兩行如何輸出?
查看完整描述

2 回答

?
楊__羊羊

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

在第二種情況下,您正在打印接口實例信息,即類型和值,類型為(*main.TestError)value 為(nil)。在第一種情況下,您實際比較的不是nil因為它也是界面。


查看完整回答
反對 回復(fù) 2021-10-25
  • 2 回答
  • 0 關(guān)注
  • 324 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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