当我定义一个自定义类型时,似乎底层类型的类型对我是否可以将其传递给函数或我需要转换它有所不同.
问题是:
为什么RuneFunc和StringMap有效,但不是Integer?
https://play.golang.org/p/buKNkrg5y-
package main
type RuneFunc func(rune) rune
type Integer int
type StringMap map[string]string
func main() {
//m := make(StringMap)
//mf(m)
var i Integer = 5
nf(i)
//var f func(rune) rune
//ff(f)
}
func mf(i map[string]string) {
}
func ff(i func(rune)rune) {
}
func nf(i int) {
}
Run Code Online (Sandbox Code Playgroud)
在这里,当我运行这个函数调用nf与Integer它抱怨,虽然int是基础类型.但是当我打电话mf或ff他们成功运行时.