gpt4 book ai didi

go - 为什么是 "err != nil"?

转载 作者:数据小太阳 更新时间:2023-10-29 03:33:24 25 4
gpt4 key购买 nike

<分区>

我遇到这样一种情况,变量“err error”的值只能是“nil”,但在重新分配后断言“( err == nil) == false”。

示例代码如下:

package main

import (
"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. false
2015/07/30 08:28:28 main( ... ): err = (*main.TestError)(nil)

那最后两行怎么输出呢?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com