在go语言中,interface{}类型可以接收任意值,根据这个特性,可以完成动态类型传参,例如:
func add(a, b interface{}) interface{} {
switch a.(type) {
case int:
ai, _ := a.(int)
bi, _ := b.(int)
return ai + bi
case float64:
ai, _ := a.(float64)
bi, _ := b.(float64)
return ai + bi
default:
return nil
}
}
这个函数完成了一个int类型和float64类型可以同时使用的相加函数