Thank you for your explain.
I read the section in the FAQ.


2017년 2월 27일 월요일 오전 2시 20분 44초 UTC+8, Andrei Tudor Călin 님의 말:
>
> Hello.
>
> If any concrete value has been stored in an interface value - including a 
> nil pointer of some type - the interface will not be nil.
>
> See this section in the FAQ for more details: 
> https://golang.org/doc/faq#nil_error
>
> On Sunday, February 26, 2017 at 6:06:16 PM UTC+1, 장재휴 wrote:
>>
>> Hi.
>>
>> This is very simple program for testing about error type.
>> I found that error type casting is something strange.
>> I thing `err2` should be nil, but it is not nil.
>> Someone can explain about this result?
>>
>> https://play.golang.org/p/icjhpCCNe_
>>
>> ----------
>>
>> package main
>>
>> import (
>> "fmt"
>> )
>>
>> type MyError struct{}
>>
>> func (e MyError) Error() string {
>> return "MyError"
>> }
>>
>> func main() {
>> var myError *MyError = nil
>> if myError == nil {
>> fmt.Println("myError is nil")
>> } else {
>> fmt.Println("myError is not nil")
>> }
>>
>> var err1 error = error(nil)
>> if err1 == nil {
>> fmt.Println("err1 is nil")
>> } else {
>> fmt.Println("err1 is not nil")
>> }
>>
>> var err2 error = error(myError)
>> if err2 == nil {
>> fmt.Println("err2 is nil")
>> } else {
>> fmt.Println("err2 is not nil")
>> }
>>
>> }
>>
>> -----------
>> [RESULT]
>>
>> myError is nil
>> err1 is nil
>> err2 is not nil
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to