type Boolean bool
func takes_bool(b bool) {
fmt.Printf("%t\n", b)
}
func takes_boolean(b Boolean) {
fmt.Printf("%t\n", b)
}
当我调用以下内容时:
takes_bool(Boolean(false))
takes_bool(Boolean(true))
我明白了:
cannot use Boolean(false) (type Boolean) as type bool in function argument
cannot use Boolean(true) (type Boolean) as type bool in function argument
关于可转让性的规则似乎 NOT 不允许它,即至少有一个不是命名类型&两者都有相同的基础类型:
type Boolean bool
vs
bool
答案 0 :(得分:2)
仔细阅读http://golang.org/ref/spec#Types后,似乎bool
被视为命名类型(int
和float
以及朋友)。短语"未命名的类型"仅引用interface{}
和struct{}
等类型文字。