例如:
- func MyPrintf(args ...interface{}) {
- for _, arg := range args {
- switch arg.(type) {
- case int:
- fmt.Println(arg, "is an int value.")
- case string:
- fmt.Println(arg, "is a string value.")
- case int64:
- fmt.Println(arg, "is an int64 value.")
- default:
- fmt.Println(arg, "is an unknown type.")
- }
- }
- }
packagemain
import(
."fmt"
"strconv"
)
typeElementinterface{}
typeList[]Element
typepersonstruct{
namestring
ageint
}
func(pperson)String()string{
return"(name:"+p.name+"-age:"+strconv.Itoa(p.age)+"years"
}
funcmain(){
list:=make(List,3)
list[0]=1
list[1]="hello"
list[2]=person{"TimLu",29}
forindex,element:=rangelist{
// Println(element.(type))
switchvalue:=element.(type){
caseint:
Printf("list[%d]isanintanditsvalueis%d\n",index,value)
casestring:
Printf("list[%d]isastringanditsvalueis%s\n",index,value)
caseperson:
Printf("list[%d]isaPersonanditsvalueis%s\n",index,value)
default:
Println("list[%d]isofadifferenttype",index)
}
}
// forindex,element:rangelist{
//// switchvalue:=element.(type){
//// }
//Println(element.(type))
// }
}