问题:
在使用interface表示任何类型时,如果要将interface转为某一类型,直接强制转换是不行的,例如:
var t interface{} = "abc"
s := string(t)
cannot convert t(type interface {}) to type string: need type assertion
这样是不行的,需要进行type assertion类型断言,具体使用方法请参考:
golang 任何类型interface{}
解决
package main
import ("fmt"
)
func main() {
CheckType("tow", 88, "three")
}
func CheckType(args ...interface{}) {
for _,v := range args {
switch v.(type) {
case int:
fmt.Println("type:int, value:", v)case string:
fmt.Println("type:string, value:", v)
default:
fmt.Println("type:unkown,value:",v)
}
}
}