【发布时间】:2016-02-28 01:35:44
【问题描述】:
根据Go language spec,我可以在结构中嵌入一个类型。
error 接口有一个奇怪的情况。它不是大写的,所以我假设它没有作为类型导出。但它是由语言定义的。所以如果我有这样的结构:
package foo
type Err struct {
error
}
嵌入的error 是否已导出? Err 是否满足error 接口?
我可以从另一个包中访问它吗,即以下可以吗?
package main
import "errors"
import "fmt"
import "foo"
func main() {
e := foo.Err{}
e.error = errors.New("Hello world!") // is this okay?
fmt.Println(e.Error())
}
【问题讨论】: