golang中一个interface类型潜在问题

简介: golang中一个interface类型潜在问题
package main

import (
    "errors"
    "fmt"
    "log"
)

func main() {
    var e interface{}
    e = func() error {
        return errors.New("err")
    }()
    if e != nil {
        fmt.Printf("%T\n", e)
        log.Println(e)
    }
    fmt.Println(e)
}
输出内容:

*errors.errorString
2019/01/05 18:54:43 err
err

这边很容易将e的类型误认为是error,但是实际运行中却被转换成*errors.errorString。

目录
相关文章
|
4月前
|
Go
|
4月前
|
存储 Go
Golang底层原理剖析之slice类型与扩容机制
Golang底层原理剖析之slice类型与扩容机制
59 0
|
4月前
|
JSON Go 数据格式
【Golang】解决使用interface{}解析json数字会变成科学计数法的问题
【2月更文挑战第9天】解决使用interface{}解析json数字会变成科学计数法的问题
151 0
|
16天前
|
Go
Golang语言基础之接口(interface)及类型断言
这篇文章是关于Go语言中接口(interface)及类型断言的详细教程,涵盖了接口的概念、定义、实现、使用注意事项以及类型断言的多种场景和方法。
22 4
|
1月前
|
JSON 人工智能 编译器
Go json 能否解码到一个 interface 类型的值
Go json 能否解码到一个 interface 类型的值
24 1
|
16天前
|
Go
Golang语言基础数据类型之字符类型
这篇文章介绍了Go语言中的字符类型,包括字符概述、byte和rune类型的定义、转义字符的使用以及如何遍历字符串获取字符的示例。
10 0
|
1月前
|
Go
Go - struct{} 实现 interface{}
Go - struct{} 实现 interface{}
34 9
|
4月前
|
存储 缓存 Go
Golang底层原理剖析之类型系统,接口与类型断言
Golang底层原理剖析之类型系统,接口与类型断言
76 2
|
4月前
|
Go
Golang随笔之自动类型推导[:=]踩坑
Golang随笔之自动类型推导[:=]踩坑
27 0
|
4月前
|
Go
浅谈Golang接口interface
浅谈Golang接口interface
35 0