type MyNumber interface {
float32, float64, uint, int // this is not supported
}
func PrintNumber(n MyNumber) {
switch n.(type) {
case float32, float64, uint, int:
fmt.Printf("%v\n", n)
default:
panic("PrintNumber only supports types float32, float64, uint, int")
}
}
在go中,可以定义一个空白接口,基本上允许任何类型
var v interface{}
v = "string"
v = 0.1
有没有办法将允许的类型减少到特定的类型列表?
就像是
type MyNumber float32, float64, uint, int
或者
type MyNumber interface {
float32, float64, uint, int
}
这样我就可以让编译器检查函数是否支持该类型。
白猪掌柜的
ITMISS
30秒到达战场
相关分类