funcmain() { var i interface{} i = "cuishuang" f(i) }
funcf(a interface{})string {
switch val := a.(type) { default: fmt.Printf("unexpected type %T", val) // %T prints whatever type t has break casebool: fmt.Printf("boolean: %t\n", val) // t has type bool break caseint: fmt.Printf("integer: %d\n", val) // t has type int break casestring: fmt.Printf("string: %s\n", val) // t has type string break case *bool: fmt.Printf("pointer to boolean: %t\n", *val) // t has type *bool break case *int: fmt.Printf("pointer to integer: %d\n", *val) // t has type *int
case *string: fmt.Printf("pointer to string: %s\n", *val) // t has type *string break