<分区>
请先看下面的代码。
package main
import "fmt"
type InterfaceFunc func(interface{})
type StringFunc func(string)
func stringFunc(s string) {
fmt.Printf("%v", s)
}
func interfaceFunc(i interface{}) {
fmt.Printf("%v", i)
}
func main() {
var i = interfaceFunc
var s = stringFunc
i = s // I would like someone to explain why this can't be done exactly.
}
在 https://play.golang.org/p/16cE4O3eb95 处运行
为什么 InterfaceFunc
不能保存 StringFunc
而 interface{}
可以保存 string
。