【发布时间】:2014-09-22 15:24:15
【问题描述】:
获取此代码示例 (playground):
package main
import (
"fmt"
)
type Foo struct {
Name string
}
var data = make(map[string]interface{})
func main() {
data["foo"] = &Foo{"John"}
foo := data["foo"].(*Foo)
fmt.Println(foo.Name)
}
当我向data 添加一些内容时,类型会变成interface{},因此当我稍后检索该值时,我必须将原始类型声明回它。例如,有没有办法为data 定义一个getter 函数,它会自动断言类型?
【问题讨论】:
-
为什么不给
data一个自己的类型并在该类型上定义一个Get(key string) *Foo方法?