以这两段代码为例:
func main() {
var media interface{}
media = "boo"
media = media.(string)
fmt.Println([]byte(media))
}
func main() {
media := "boo"
fmt.Println([]byte(media))
}
在1中,媒体首先被创建为空接口,然后类型被Assert为字符串。在2中,媒体是字符串。
两者都试图将媒体转换为字节数组,为什么会有区别?到那时它们不都是字符串吗?
1条答案
按热度按时间mtb9vblg1#
第一个函数不改变
media
的类型,它已经被定义为interface{}
。http://play.golang.org/p/QB3ey_e3io
或者内联执行:
http://play.golang.org/p/RJqBJ4telB